关于where后面的执行顺序问题select *  from tablename where field1 = 'aa' and field2 = 'bb' and field3  = 'cc'   查了很多网上资料,大部分是说从左到右执行,
但是还有的说,如果field3有索引,msSQL会自动判断先执行field3我也弄糊涂了,能否提供一个官方的说法,给出一个确切的执行顺序?

解决方案 »

  1.   

    按照这个顺序
    field1 = 'aa' and field2 = 'bb' and field3  = 'cc
      

  2.   

    sql自动优化.或是自己看看查询计划.
      

  3.   

    顺序不知道,但我知道顺序可以影响一个查询的效率,我开始还不信,后来我们经理给我看了一个SQL,偶才知道顺序其实也有先后的~~
      

  4.   


    你这句话如果没有索引或主键,会按照从左到右顺序执行全表扫描,但如果某一字段是主键或者索引
    根据SQL内部优化,会按照主键和索引来扫描表。由于全部是AND,所以按这个字段来扫描表,也就是先
    比较该字段满足条件的数据,其他的字段是从左到右再做筛选。
      

  5.   

    关注。。偶也很想知道SQl执行的顺序机制
      

  6.   

    这是SQL server 引擎自动优化。不过大部分还是从左到右顺序。