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

Làm cách nào để kết hợp AND và OR trong câu lệnh SQL của mình

Cả hai điều này đều hợp lệ, nhưng AND có mức độ ưu tiên cao hơn OR , chúng có nghĩa là những thứ khác nhau:

  • Truy vấn trong ngoặc đơn đầu tiên của bạn sẽ chọn các hàng đã xóa với các loại 3, 4, 5
  • Truy vấn trong ngoặc đơn thứ hai của bạn sẽ chọn tất cả các hàng có loại 3, 5, ngoài các hàng đã xóa thuộc loại 4; ý nghĩa này giống như trong truy vấn ban đầu không có dấu ngoặc đơn.

Bạn hoàn toàn có thể tránh nhầm lẫn bằng cách sử dụng toán tử IN , như thế này:

SELECT * FROM `table` WHERE type IN (3, 4, 5) AND table.deleted = 1;

hoặc nếu bạn muốn ý nghĩa thứ hai

SELECT * FROM `table` WHERE type IN (3, 5) OR (type = 4 AND table.deleted = 1)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Đếm số lần xuất hiện của giá trị DISTINCT

  2. Tách chuỗi bằng mysql

  3. Tìm Long / Lat bên trong của đa giác với MySQL 5.6

  4. mysql - bất kỳ cách nào để giúp tìm kiếm toàn văn bản với một chỉ mục khác?

  5. Làm cách nào để so khớp mờ email hoặc điện thoại bằng Elasticsearch?