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

MySQL:chọn * từ bảng có cột IN (null,) mà không có HOẶC

SELECT  *
FROM    mytable
WHERE   COALESCE(col, '') = ''

Tuy nhiên, lưu ý rằng OR truy vấn sẽ hiệu quả hơn nhiều nếu cột được lập chỉ mục:

SELECT  *
FROM    mytable
WHERE   col = '' OR col IS NULL

Điều này sẽ sử dụng ref_or_null đường dẫn truy cập trên chỉ mục.

Nếu bạn cần chọn từ danh sách các giá trị cùng với NULLs , chỉ cần đặt tất cả các giá trị không null vào danh sách và thêm một OR IS NULL điều kiện:

SELECT  *
FROM    mytable
WHERE   col IN ('val1', 'val2', 'val3') OR col IS NULL

Điều này sẽ sử dụng một chỉ mục trên col nữa.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PHP thay đổi mysql_query cũ thành PDO

  2. Phương pháp tốt nhất để sử dụng / lưu trữ khóa mã hóa trong MySQL là gì

  3. MySQL không sử dụng chỉ mục khi kiểm tra =1, nhưng sử dụng nó với =0

  4. Tìm kiếm toàn văn MySQL cho các từ có ba chữ cái trở xuống

  5. Mối quan hệ nhiều-nhiều trong MySQL