Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Pomiędzy stwierdzeniem brakuje indeksów w niektórych przypadkach

Jeśli jakiekolwiek takie zapytanie zwróci maksymalnie jeden wiersz, oznacza to, że (sATON, eATON) zakresy się nie nakładają.

Dlatego i tylko wtedy, gdy zakresy się nie pokrywają, możesz użyć tego zapytania:

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

lub nawet ten (który będzie wymagał użycia tylko jednego indeksu, sATON jeden):

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Łączenie wierszy wyników node-mysql w pojedynczy zwrot JSON dla node.js

  2. Wyzwalacze MySQL - PO WSTAWIENIU wyzwalacza + problem z UDF sys_exec()

  3. Przesyłanie plików/obrazów blob do Mysql

  4. Jak ustawić character_set_database i collation_database na utf8 w my.ini?

  5. Prześlij plik PDF do mysql BLOB za pomocą java.sql.PreparedStatement bez korupcji