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='男'    (運用乘法交換律)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM