SQL WHERE语句优先级

时间:2014-03-06 17:15:14

标签: mysql

请在SQL查询中解释此语句的优先级。什么将首先检查,如何,我无法理解。

SELECT * FROM table 
WHERE (deleted_by <> :user AND deleted_by <> :nula) 
    OR deleted_by IS NULL 
   AND IDmessage=:ID

1 个答案:

答案 0 :(得分:1)

AND的优先级高于OR,因此它相当于:

WHERE (deleted_by <> :user AND deleted_by <> :nula) 
   OR (deleted_by IS NULL AND IDmessage = :ID)

我建议您在ANDOR混合时使用明确的括号,因为结果并不总是直观的。