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

Làm thế nào để truy vấn bảng MySQL này theo cách hiệu quả nhất?

Bạn sẽ phải quét toàn bộ bảng, vì vậy đây có lẽ là giải pháp tốt nhất:

select (case when id in (< your list >) then 'in' else 'out' end) as inlist,
       my_boolean_field, count(*)
from mytable t
group by (case when id in (< your list >) then 'in' else out' end),
         my_boolean_field;

Nếu danh sách của bạn nằm trong bảng có chỉ mục, thì bạn có thể sử dụng left join trên đó. Tuy nhiên, MySQL tối ưu hóa các tìm kiếm cho in với các giá trị không đổi (nó sử dụng tìm kiếm nhị phân). Vì vậy, đây có thể là phương pháp nhanh nhất.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL 'Đã cắt ngắn giá trị INTEGER không chính xác'

  2. Làm cách nào để thực hiện ba lệnh THAM GIA bảng trong truy vấn CẬP NHẬT?

  3. Cách cài đặt MySQL gem trên Mac OS X

  4. Chỉ có thể có một cột tự động

  5. Không thể AES_DECRYPT sau AES_ENCRYPT trong mysql