请教sql语句执行时where子句的条件有没有先后顺序

guyanf 2004-12-22 12:34:16
比如 select * from tablename where field1 = 'aa' and field2 = 'bb' and field3 = 'cc'
在执行这种语句的时候,系统是直接去找何这三个条件完全匹配的记录呢,还是先判断field1= 'aa'是否成立,如果成立,再去判断field2 ='bb'是否成立,……,还是另外有其他的判断方法。请大家多多指教。多谢!!!
...全文
318 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
mschen 2004-12-22
  • 打赏
  • 举报
回复
--应该是先判断第一个条件,如果成立的话,再去判断第二个条件,如果不成立的话.那就不去判断接下去的条件了.因为他们是and的关系.我记的c语言里边是这样的逻辑,应该这里也是这样吧!
子陌红尘 2004-12-22
  • 打赏
  • 举报
回复
有引用索引的话,会先根据索引的值判断。
NinGoo 2004-12-22
  • 打赏
  • 举报
回复
and需要判断所有的条件为true结果才为true,但只要任何一个false则结果false
guyanf 2004-12-22
  • 打赏
  • 举报
回复
多谢各位指点。
long111 2004-12-22
  • 打赏
  • 举报
回复
对于sql server来说,ansi sql99中,查询中的where子句中的条件的顺序无关紧要,但是在传统的sql server中,对于join,left join,left outer join 等,where子句中的条件的顺序的至关重要。
具体介绍,请参阅google.com

merry christmas and happy new year!
guyanf 2004-12-22
  • 打赏
  • 举报
回复
我是想知道他是怎么判断记录的,要不数据 很多的时候,我担心查询会很慢的。如果是按照我想象的那样,先判断第一个条件,然后判断第二个条件……,这样的话,我就可以吧能获取最少记录的条件放在前面,那样我想会快一点,我市这样理解的。不知道对不对?
yingqing 2004-12-22
  • 打赏
  • 举报
回复
在java裡面,先判斷field1 = 'aa',為真繼續,為否則不再判斷,SQL裡面就不知道拉

34,838

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧