简单的 数据库 and or 逻辑

来源:互联网 发布:矩阵式键盘使用方法 编辑:程序博客网 时间:2024/06/14 19:20

一个很简单的问题,但却老是犯错,记录下来,以供以后遇到相同问题,作下参考


数据库中查询数据的时候,经常会用到 and or 进行条件的编写,如果条件比较长,用到了比较多的and 和or,就需要注意括号的使用了。举例如下:


select * from Table_1

结果为:

idab1A1B12A1B23A2B34A2B25A5B3

然后执行下面的SQL:

select * from Table_1 t where t.id < 4 and t.a like '%1'or t.b like '%3'


得到的结果是:

idab1A1B12A1B23A2B35A5B3


而如果我们执行 两条简单SQL的 并:

select * from Table_1 t where t.id < 4 and t.a like '%1'union select * from Table_1 t where t.b like '%3'


得到的结果和上面的一样,这就说明

select * from table where A and B or C

等价于:

select * from table where A and B

union

select * from table where C


所以如果要查询到 A and (B or C),就需要加上括号了

比如上面的例子,将SQL加上括号:

select * from Table_1 t where t.id < 4 and (t.a like '%1'or t.b like '%3');
得到的结果是:

idab1A1B12A1B23A2B3










原创粉丝点击