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

Mysql hoặc / và mức độ ưu tiên?

Tài liệu MySQL có trang tốt với thông tin về những toán tử nào được ưu tiên.

Từ trang đó,

12.3.1. Mức độ ưu tiên của nhà khai thác

Các ưu tiên của toán tử được hiển thị trong danh sách sau, từ ưu tiên cao nhất đến thấp nhất. Các toán tử được hiển thị cùng nhau trên một dòng có cùng mức độ ưu tiên.

INTERVAL
BINARY, COLLATE
!
- (unary minus), ~ (unary bit inversion)
^
*, /, DIV, %, MOD
-, +
<<, >>
&
|
= (comparison), <=>, >=, >, <=, <, <>, !=, IS, LIKE, REGEXP, IN
BETWEEN, CASE, WHEN, THEN, ELSE
NOT
&&, AND
XOR
||, OR
= (assignment), :=

Vì vậy, truy vấn ban đầu của bạn

Select
    *
from tablename 
where
    display = 1
    or display = 2
    and content like "%hello world%"
    or tags like "%hello world%"
    or title = "%hello world%"

sẽ được hiểu là

Select
    *
from tablename 
where 
    (display = 1)
    or (
        (display = 2)
        and (content like "%hello world%")
    )
    or (tags like "%hello world%")
    or (title = "%hello world%")

Khi nghi ngờ, hãy sử dụng dấu ngoặc đơn để làm rõ ý định của bạn. Mặc dù thông tin trên trang MySQL là hữu ích, nhưng có thể không rõ ràng ngay lập tức nếu truy vấn được truy cập lại.

Bạn có thể xem xét một cái gì đó như sau. Lưu ý rằng tôi đã thay đổi title = "%hello world%" đến title like "%hello world%" , vì điều đó phù hợp hơn với mục tiêu bạn đã mô tả.

Select
    *
from tablename 
where
    (
        (display = 1)
        or (display = 2)
    ) and (
        (content like "%hello world%")
        or (tags like "%hello world%")
        or (title like "%hello world%")
    )


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để thoát ký hiệu phần trăm theo nghĩa đen khi tùy chọn NO_BACKSLASH_ESCAPES được bật?

  2. Tổng quan về Percona XtraDB Cluster Kubernetes Operator

  3. Làm thế nào để chọn hàng đầu tiên cho mỗi nhóm trong MySQL?

  4. Cách tạo thủ tục lưu trữ trong MySQL

  5. Tính toán decile trong MySQL dựa trên tổng số