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

Cách sử dụng một hoặc nhiều HOẶC và VÀ trong truy vấn mysql

ưu tiên với các toán tử logic. Khi nghi ngờ, hãy sử dụng dấu ngoặc đơn.

Trong trường hợp của bạn:

SELECT * FROM database WHERE (name = var1 OR name = var2 OR name = var3) AND id < 200

Truy vấn ban đầu của bạn được hiểu như sau vì AND có mức độ ưu tiên cao hơn.

SELECT * FROM database WHERE name = var1 OR name = var2 OR (name = var3 AND id < 200)

Cập nhật

Như nhận xét của Rocket , bạn có thể cô đọng OR của mình câu lệnh cho IN vì họ hoạt động trên cùng một lĩnh vực. Làm như vậy sẽ loại bỏ sự cần thiết của dấu ngoặc đơn.

SELECT * FROM database WHERE name IN (var1,var2,var3) AND id < 200

Tuy nhiên, hiểu được sự khác biệt giữa hai truy vấn ban đầu là rất quan trọng vì bạn chắc chắn sẽ viết các truy vấn với nhiều điều kiệ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. cập nhật cơ sở dữ liệu với hộp kiểm

  2. bảng mysql bị khóa sau khi php gặp sự cố

  3. tùy chọn không xác định mysqld '--initialize'

  4. Cách viết truy vấn MySQL trong đó A chứa (a hoặc b)

  5. Mysql hiển thị hàng dưới dạng cột