AND和OR优先

时间:2017-02-22 03:50:42

标签: sql logic

这不属于任何特定语言,而是逻辑。我只使用SQL作为例子:我有2个子句:

(1)A1和A2在哪里

(2)在哪里A1或A2

在(1)情况下,在检查A1为假之后会查询停止吗? 在(2)的情况下,在检查A1为真之后会查询停止吗?

如果有人问过,请将此标记为重复。

谢谢

2 个答案:

答案 0 :(得分:6)

你有错误的想法。 SQL查询表示结果集,而不是发生的处理。因此,where子句不代表一组特定的指令。这些条款可以按任何顺序执行。

尽管如此,大多数数据库都会对此类评估进行短路。因此,执行通常会使用确定条件的第一个子句(true或false)停止。

答案 1 :(得分:2)

你所描述的内容被称为“短路”,我确信它因语言而异,但我知道JavaScript和ColdFusion都表现得像你描述的那样。

SQL依赖于实现:

https://stackoverflow.com/a/909770/2913684