mysql中NOT、AND、OR和()的优先顺序

mysql中NOT、AND、OR和()的优先顺序,第1张

优先顺序: 小括号、NOT、AND、OR。

错误的写法:这个时候你会怀疑到底是不是where条件有问题,其实是因为先执行了and,最后再来执行的or,所以就查出来了。

正确的写法:因为括号的优先级最高,所以先执行了再来and就没问题了。

多数据库服务器都只把IN()看作多个OR的同义词,因为它们在逻辑上是相等的。MYSQL不是这样的,它会对IN()里面的数据进行排序,然后用二分法查找个是否在列表中,这个算法的效率是O(Logn),而等同的OR子句的查找效率是O(n)。在列表很大的时候,OR子句就会变得慢得多。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/zaji/5905480.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-07
下一篇 2023-03-07

发表评论

登录后才能评论

评论列表(0条)

保存