sql里Where条件顺序

以前的理解: sql语句里where后面的条件是否分先后顺序的 ,比如 A and B and C和 C and B and A 是一样,不像C语言 A && B 与B && A 执行效果不一样,是从左向右的。

为什么会得出这样的结论呢?也就是论据是什么?

如果条件有三列a,b,c;b列上有索引 那么Where a='a' and b='b' and c='c' 与Where c='c' and b='b' and c='c' 都会优先选b列,因为b列有索引,所以不会是从左到右,或从右到左

现在的理解: sql语句里where后面的条件运算是有先后顺序的,不是从左向右或者从右向左,这个具体是由编译器定的,也就是最后的执行计算里面会有先后顺序的。可能你交换条件的顺序生成的执行计划大体没有变化,但是计划里面的谓词是可能有变化的,这里就体现了执行条件的顺序。

其实想细在计算机上执行的一条一条指定怎么会没有先后顺序呢,只是这个顺序我们一下说不出先执行哪个后执行哪个而已。

----------分割线-------------

我测试一下代码格式,每次都不对

print "Hello"
原文地址:https://www.cnblogs.com/gw2010/p/3450067.html