前言
在以前的项目中,都没有使用过or,这次用到了,就花时间来整理下.
使用
这里首先要说明的是优先级的问题,
or的优先级是倒一,
and的优先级是倒二.
例子1
SELECT * FROM USER WHERE 1=1 OR ID='1';
这里1=1查出的是所有的数据,id=1,包含在1=1中.所以这里查出的是所有数据.
例子2
SELECT * FROM USER WHERE ID='1' AND ID='2' OR ID='3';
以上的sql语句可以看成 [ ID='1' AND ID='2' ] OR ID='3'
让or的左右相对比,其中一方满足就显示出数据.当两方都满足同一个数据,那么这个数据只会出现一次.
例子3
SELECT * FROM USER WHERE ID='1' OR ID='2' AND ID='3' OR ID='4';
考虑到优先级的问题,以上会优先执行[ ID ='2' AND ID = '3' ].
接着执行ID ='1' OR [ ID ='2' AND ID = '3' ] OR ID ='4';
所以在执行有or的查询条件时,最好用()括号,括起来,这样不仅方便维护,易懂.而且还不容易出错.