sql中and和or的优先级

        首先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),就可以了。

猜你喜欢

转载自blog.csdn.net/EverLJS/article/details/80665969
今日推荐