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

WHERE Nếu điều kiện không được đáp ứng, hãy lấy tất cả các giá trị bao gồm cả NULL

Thay đổi điều kiện của bạn thành điều này thay thế:

where (@LastName = 'All' and 1=1) or (LastName = @LastName)

Ý tưởng là khi @LastName ='Tất cả' thì truy vấn của bạn sẽ không có bất kỳ bộ lọc nào. Điều kiện 1 =1 sẽ luôn đúng và cùng với việc kiểm tra khác sẽ trả về tất cả các kết quả. Đường dẫn khác mà truy vấn có thể thực hiện là lọc theo Họ cụ thể, chắc chắn sẽ loại trừ các giá trị rỗng.

Cập nhật:Điều kiện 1 =1 là dư thừa. Bạn có thể viết lại điều kiện thành:

where (@LastName = 'All') or (LastName = @LastName)

Bản trình diễn



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. chọn tất cả các hàng ngoại trừ bốn hàng gần đây nhất

  2. Nhóm và so sánh số từ cột chuỗi

  3. Sao chép dữ liệu từ bảng này sang bảng khác VÀ thêm dữ liệu bổ sung

  4. mySQL regex trong mệnh đề where

  5. Chọn Dữ liệu Tối đa từ SQL Truy vấn Con, nhưng nó Hiển thị Tất cả Kết quả từ Truy vấn Con