优先顺序: 小括号、NOT、AND、OR。
错误的写法:这个时候你会怀疑到底是不是where条件有问题,其实是因为先执行了and,最后再来执行的or,所以就查出来了。
正确的写法:因为括号的优先级最高,所以先执行了再来and就没问题了。
多数据库服务器都只把IN()看作多个OR的同义词,因为它们在逻辑上是相等的。MYSQL不是这样的,它会对IN()里面的数据进行排序,然后用二分法查找个是否在列表中,这个算法的效率是O(Logn),而等同的OR子句的查找效率是O(n)。在列表很大的时候,OR子句就会变得慢得多。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)