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

Bắt mysql bỏ qua điều kiện ở đâu

SELECT *
FROM foo
WHERE id = $id
AND ( bar = $baz OR $baz [equals null, empty string, zero, whatever] )

Tôi không biết liệu MySQL có bao giờ sử dụng đánh giá ngắn mạch không trong kế hoạch thực thi của nó, nhưng có thể có lợi nếu đặt so sánh rẻ hơn lên trước, như:

SELECT *
FROM foo
WHERE id = $id
AND ( $baz [equals null, empty string, zero, whatever] OR bar = $baz )

Bạn có thể sử dụng phương pháp này với nhiều tham số.

SELECT *
FROM foo
WHERE id = $id
AND ( $baz [equals null, empty string, zero, whatever] OR bar = $baz )
AND ( $x = 0 or x = $x )
AND ( $y IS NULL OR y = $y )

-- etc.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Báo cáo chuyên cần trong MySql

  2. Cách tạo Rest API với Spring Boot bằng MySQL và JPA

  3. Khóa được chỉ định quá dài; độ dài khóa tối đa là 1000 byte

  4. Chọn mức trung bình từ bảng MySQL với LIMIT

  5. Tham gia bảng với điều kiện chuỗi con