Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Giữa các chỉ mục bị thiếu câu lệnh trong một số trường hợp nhất định

Nếu bất kỳ truy vấn nào như vậy sẽ trả về tối đa một hàng, điều này có nghĩa là (sATON, eATON) phạm vi không chồng chéo.

Do đó, và chỉ khi các phạm vi không chồng chéo, bạn có thể sử dụng truy vấn này để thay thế:

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

hoặc thậm chí cái này (chỉ cần sử dụng một chỉ mục, sATON một):

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. Phân tách hiệu suất giữa sql SELECT NULL và SELECT 1

  2. MySQL chọn dữ liệu phân tách

  3. làm thế nào để chạy tập lệnh python từ truy vấn mysql?

  4. Mysql errno 150 đang cố gắng tạo bảng với các tham chiếu khóa ngoại

  5. Bảng thay thế không thành công vì một hàng có dữ liệu không chính xác - Giá trị ngày giờ không chính xác:'0000-00-00 00:00:00'