首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL中的AND语句总是被执行吗?

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

Stack Overflow用户
提问于 2011-08-01 09:04:44
回答 1查看 127关注 0票数 0

可能重复:

Is the SQL WHERE clause short-circuit evaluated?

如果我们这么做

代码语言:javascript
复制
SELECT * FROM Business WHERE Latitude < 9 AND Latitude > 10

例如,如果纬度是8,那么会调用8吗?

在mysql中呢?

核心数据呢?

它是依赖于SQL实现,还是有一个明确的标准,即如果AND语句中的一个为false,则在where子句中将不会执行其余语句。

我问这个是为了知道我是否能节省一些计算能力。表示表达式后的第一个,是昂贵的计算,如计算距离。

EN

回答 1

Stack Overflow用户

发布于 2011-08-01 09:20:52

警告:脚踏实地的答案

您可能弄错了,使用OR (实际上,条件Latitude < 9 AND Latitude > 10是没有意义的)。

在大多数语言中这是按如下方式实现的:每个条件都被检查,直到其中一个条件为真(我相信SQL - RDBMS)

  • AND编辑this answer也是这样:this answer表明实际行为依赖于实现,也就是说,在任何RDBMS)

  • AND连接中,都不能确定每个条件都会被检查,直到一个条件是false

)。

因此,您可能想要编写以下条件:

代码语言:javascript
复制
Latitude < 9 OR Latitude > 10

相当于:

代码语言:javascript
复制
NOT(Latitude >= 9 AND Latitude <= 10)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6896225

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档