• 主页
  • 基础类
  • 应用实例
  • 新技术前沿

请教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'是否成立,……,还是另外有其他的判断方法。请大家多多指教。多谢!!!
...全文
183 点赞 收藏 7
写回复
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裡面就不知道拉
回复 点赞
发动态
发帖子
MS-SQL Server
创建于2007-09-28

1.4w+

社区成员

25.3w+

社区内容

MS-SQL Server相关内容讨论专区
社区公告
暂无公告