SQL中的AND语句是否总是被执行?

时间:2011-08-01 09:04:45

标签: mysql sql database core-data

  

可能重复:
  Is the SQL WHERE clause short-circuit evaluated?

如果我们这样做

SELECT * FROM Business WHERE Latitude < 9 AND Latitude > 10

例如,如果Latitude为Latitude > 10,会8会被调用吗?

在mysql中怎么办?

核心数据怎么样?

是否依赖于SQL实现,或者在where子句中是否存在明确的标准,如果AND语句之一为假,则其余语句将不执行。

我问这是否可以节省一些计算能力。假设第一个AND之后的表达式计算成本很高,例如计算距离。

1 个答案:

答案 0 :(得分:1)

警告:脚踏实地的回答

你可能错误地和OR一起(事实上条件Latitude < 9 AND Latitude > 10毫无意义..)。

  • 或结合 AFAIK在大多数语言中实现如下:检查每个条件直到一个为真(我相信这也适用于SQL - EDIT :{ {3}}表明实际行为是依赖于实现的,即您无法在任何RDBMS中确定这一点
  • 和结合检查每个条件,直到其中一个为假

所以你可能想写这个条件:

Latitude < 9 OR Latitude > 10

相当于:

NOT(Latitude >= 9 AND Latitude <= 10)