首先and的优先级大于or,通俗理解其实or查询其实会把条件分为左右两边来查。
如 SELECT * FROM USER WHERE ID = 1 AND STATUS = 2 OR STATUS = 3,本来是想查询USER表中id为1的状态为2或者3的数据,其实只会这样执行,and比or优先,结果是查询id为1和状态为2,或者状态为3的数据。
解决方法,如果是同字段,如上例子,可SELECT * FROM USER WHERE ID = 1 AND STATUS in (2,3),或者SELECT * FROM USER WHERE ID = 1 AND (STATUS = 2 OR STATUS = 3),就可以了。
本文解析了SQL查询中and与or运算符的优先级问题,并提供了有效的解决方案,包括使用in操作符和括号来确保正确的执行顺序。
2096

被折叠的 条评论
为什么被折叠?



