Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Entre os índices ausentes da instrução em certos casos


Se qualquer consulta retornar no máximo uma linha, isso significa que o (sATON, eATON) intervalos não são sobrepostos.

Portanto, e somente se os intervalos não estiverem sobrepostos, você pode usar esta consulta em vez disso:
SELECT * 
FROM data2 
WHERE sATON = 
      ( SELECT MAX(sATON)
        FROM data2 
        WHERE sATON <= 1112203488
      )
  AND eATON = 
      ( SELECT MIN(eATON)
        FROM data2 
        WHERE eATON >= 1112203488
      )

ou mesmo isso (que precisará usar apenas um índice, o sATON 1):
SELECT * 
FROM data2 
WHERE sATON = 
      ( SELECT MAX(sATON)
        FROM data2 
        WHERE sATON <= 1112203488
      )
  AND eATON >= 1112203488