Mysql
 sql >> база данни >  >> RDS >> Mysql

Mysql или/и приоритет?

Документацията на MySQL има добра страница с информация кои оператори имат предимство.

От тази страница,

12.3.1. Приоритет на оператора

Приоритетите на операторите са показани в следния списък, от най-високото до най-ниското. Операторите, които са показани заедно на ред, имат същия приоритет.

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), :=

Така че вашата оригинална заявка

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

ще се тълкува като

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

Когато се съмнявате, използвайте скоби, за да изясните намерението си. Въпреки че информацията на страницата на MySQL е полезна, може да не е веднага очевидна, ако заявката бъде преразгледана.

Може да помислите за нещо като следното. Имайте предвид, че промених title = "%hello world%" до title like "%hello world%" , тъй като това отговаря по-добре на целта, която описахте.

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. Къде да промените стойността на low_case_table_names=2 в windows xampp

  2. Как мога да реша несъвместимо с sql_mode=only_full_group_by в laravel eloquent?

  3. Форматирайте числото до 2 знака след десетичната запетая

  4. има ли функция group_concat в ms-access?

  5. Използване на фрагменти на Oracle JDeveloper с MySQL