Mysql选择查询中AND和OR运算符的优先级

时间:2013-04-27 08:14:52

标签: mysql operator-precedence

我根据原始状态,原始城市,目的地州和目的地城市编写了mysql select query来获取计划详细信息。在我的查询中,我使用了ANDOR运算符。

这是我的查询,

SELECT * FROM TruckLoadSchedule ts 
WHERE ts.originState IN (states) AND ts.originCity IN (cities) 
   OR ts.destState IN (states) AND ts.destCity IN (cities);

但我需要知道上述查询中AND和OR运算符的优先级,我的意思是说它会在内部执行类似(X AND Y) OR (M AND Q)的操作吗?

3 个答案:

答案 0 :(得分:8)

是的,AND的优先级高于OR。 x和y绑定在一起,m和q绑定在一起,然后生成的表达式被ORed。

答案 1 :(得分:1)

在我见过的每种编程语言中,AND的优先级高于OR,而且我已经在近距离看到了几十种,并且我自己实现了一些。这个问题基本上是在1960年与Algol-60报告中解决的,如果不是已经在Fortran(1957年)。

[有一个例外,但它是一种错误实现的语言,根本没有运算符优先级。我解决了这个问题。]

答案 2 :(得分:1)

是的,它会执行(X AND Y) OR (M AND Q)之类的操作。 AND运算符的优先级高于OR

有关详情,请参阅MySQL: Operator Precedence