首页新闻找找看学习计划

SQL查询条件or的规则。

0
[已解决问题] 解决于 2017-12-22 15:12

select Id from User where CreaterId ='123' or ApplicantId='123'

这样一条SQL语句,当CreaterId 和 ApplicantId同时满足时,他会怎么执行。

SQL
你猜丶的主页 你猜丶 | 菜鸟二级 | 园豆:390
提问于:2017-09-21 11:24
< >
分享
最佳答案
0

先去判断CreaterId ='123'  如果合适直接就是,不然再去判断 ApplicantId='123'

奖励园豆:5
流年煮雪 | 菜鸟二级 |园豆:219 | 2017-09-21 13:05
其他回答(8)
0

全表扫描.

吴瑞祥 | 园豆:28675 (高人七级) | 2017-09-21 11:26

啊,比如说他是会优先执行CreaterId ,还是找更契合条件的那个,或者两个一起执行?

支持(0) 反对(0) 你猜丶 | 园豆:390 (菜鸟二级) | 2017-09-21 11:27

@你猜丶: 没有什么优先级.

本来就是or.他就是全表扫描.看2个字段是否有满足条件的.

优先不优先有啥关系.

支持(0) 反对(0) 吴瑞祥 | 园豆:28675 (高人七级) | 2017-09-21 11:30
0

两个条件同时执行

金琥 | 园豆:2540 (老鸟四级) | 2017-09-21 11:37
0

or逻辑,机器只要判断前面的真了,就不会执行后面的代码了

寞小陌 | 园豆:104 (初学一级) | 2017-09-21 15:02
0

where 条件的执行顺序 是从左向右,使用OR 关键字的时候,先遍历全表满足 CreaterId 的结果 加上 满足ApplicantId 的结果;

IT小伙儿 | 园豆:11 (初学一级) | 2017-09-21 16:22
0

or逻辑很简单吧,就是其中一个满足就搜索出来,两个互不影响

鸿燕藏锋 | 园豆:568 (小虾三级) | 2017-09-21 18:40
0

or的话是两个条件都会执行, 不会说第一个满足了第二个就不执行了

LLSmile | 园豆:257 (菜鸟二级) | 2017-09-22 10:09
0

当然是显示那个id啊,

风中灵叶 | 园豆:142 (初学一级) | 2017-09-23 09:50
0

两个条件,单独查询,最后结果进行merge,具体怎么执行,看一下执行计划就行

悦光阴 | 园豆:2239 (老鸟四级) | 2017-10-11 14:05
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册