sql >> Databasteknik >  >> RDS >> Mysql

Mellan uttalanden saknas index i vissa fall

Om en sådan fråga kommer att returnera högst en rad, betyder det att (sATON, eATON) intervallen överlappar inte.

Därför, och endast om intervallen inte överlappar, du kan använda den här frågan istället:

SELECT * 
FROM data2 
WHERE sATON = 
      ( SELECT MAX(sATON)
        FROM data2 
        WHERE sATON <= 1112203488
      )
  AND eATON = 
      ( SELECT MIN(eATON)
        FROM data2 
        WHERE eATON >= 1112203488
      )

eller till och med detta (som kommer att behöva använda bara ett index, sATON ett):

SELECT * 
FROM data2 
WHERE sATON = 
      ( SELECT MAX(sATON)
        FROM data2 
        WHERE sATON <= 1112203488
      )
  AND eATON >= 1112203488


  1. Ställ in en allmän standardprofil för databaspost (SSMS)

  2. Hur kan jag slå samman två tabeller på flera kolumner i CakePHP 3?

  3. Hur man ansluter till MySQL med Microsoft .NET

  4. Hur man skapar kontrollbegränsning på en kolumn i SQL Server - SQL Server / TSQL självstudie del 83