`MySQL`如何定义`WHERE`子句中的顺序?
请有人给我解释一下为什么:`MySQL`如何定义`WHERE`子句中的顺序?,mysql,where,where-clause,logical-operators,Mysql,Where,Where Clause,Logical Operators,请有人给我解释一下为什么: WHERE property_id = 1 OR property_id = 2 AND property_id = 3 及 给出不同的结果 以及由于And/OR逻辑运算符的优先级,MySQL如何定义WHERE子句中的顺序 第一个查询相当于 WHERE property_id = 1 OR (property_id = 2 AND property_id = 3) 因为AND的优先级高于OR运算符,因为AND/OR逻辑运算符的优先级 第一个查询相当
WHERE property_id = 1 OR property_id = 2
AND property_id = 3
及
给出不同的结果
以及由于And/OR逻辑运算符的优先级,
MySQL
如何定义WHERE
子句中的顺序
第一个查询相当于
WHERE property_id = 1 OR (property_id = 2
AND property_id = 3)
因为AND的优先级高于OR运算符,因为AND/OR逻辑运算符的优先级 第一个查询相当于
WHERE property_id = 1 OR (property_id = 2
AND property_id = 3)
因为AND的优先级高于OR运算符请检查运算符优先级
在第一个查询where子句中,检查此条件
property\u id=2和property\u id=3,因为和运算符的优先级高于或运算符
在第二个查询where子句中,首先检查此条件(property\u id=1或property\u id=2)
,因为括号的优先级高于其他比较运算符
您的第一个查询相当于
WHERE property_id = 1 OR (property_id = 2
AND property_id = 3)
检查运算符优先级
在第一个查询where子句中,检查此条件
property\u id=2和property\u id=3,因为和运算符的优先级高于或运算符
在第二个查询where子句中,首先检查此条件(property\u id=1或property\u id=2)
,因为括号的优先级高于其他比较运算符
您的第一个查询相当于
WHERE property_id = 1 OR (property_id = 2
AND property_id = 3)
逻辑运算符优先级的可能重复不是SQLErr特有的,因为它们是不同的查询?@EJP问题是为什么它们是两个不同的查询。很多人会认为这些应该产生相同的结果,因为它们是按顺序计算的,而不是根据某些优先级规则。逻辑运算符优先级的可能重复并不特定于SQLErr,因为它们是不同的查询?@EJP问题是为什么它们是两个不同的查询。很多人会认为这些应该产生相同的结果,因为它们是按顺序计算的,而不是按照一些优先规则。所以MySQL查找所有的和操作符并计算它们,然后查找或操作符进行计算?是的,差不多this@Victor:是的。阅读MySQL文档,以便MySQL查找所有和运算符并计算它们,然后查找或运算符进行计算?是的,差不多this@Victor:是的。阅读MySQL文档,如果我不使用括号,MySQL会查找所有和运算符并计算它们,然后查找或运算符进行计算?如果不使用括号,则首先计算和
运算符,然后计算或
运算符,因为和
运算符的优先级高于或
运算符。如果不使用括号,MySQL将查找所有和运算符并计算它们,然后查找或运算符进行计算?如果不使用括号,则首先计算和
运算符,然后计算或
运算符,因为和
运算符的优先级高于或
运算符