sql中where条件里的or与and的关系

时间:2021-07-21
本文章向大家介绍sql中where条件里的or与and的关系,主要包括sql中where条件里的or与and的关系使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

在sql中的where条件里,or与and的关系相当于小学里的加法与除法(或者乘法)的关系

1、例如   select * from user a where a.id=123  or  a.id=456    相当于
select * from user a where a.id=123    的结果集    加上    select * from user a where a.id=456   的结果集

2、例如  select  * from user a where a.sex='男' and a.age<18  相当于
select * from user a  的结果集  除以  条件“sex=‘男’” 的结果集 

再用上面的结果集 接着除以  条件“age<18”  最后得到的结果集

3、例如  select * from user a where  a.sex='男' and a.age<18 or a.id=123
就是 先算乘除法   再算加减法

select * from user a  除以 条件(sex='男'  and  age<18)  
再加上
select * from user a where a.id=123   

最后得到的结果集

4、例如 select * from user a where a.sex='男' and (a.age<18 or a.id=123)
这里就是有括号 先算括号里面的   select * from user a where a.age<18  的结果集  加上   select * from user a where a.id=123   得到的和     

再除以条件“sex='男'”  最后得到的结果集

5、例4可以通过乘法分配率改写成   select * from user a where a.sex='男' and a.age<18   or   a.sex='男' and a.id=123

6、例5可以通过提取公因式改写成例4的形式   

select * from user a where a.sex='男' and (a.age<18 or a.id=123)   

或者   select * from user a where  (a.age<18 or a.id=123) and a.sex='男'    (运用乘法交换律)

原文地址:https://www.cnblogs.com/happydaytome/p/15038255.html