oracle的and与or操作--and的筛选不起作用

select * from emp 

where 1=1 and (ename='20') and (ejob <> 'clerk')  or (eleader like '%a%') 

如果这样写的话,加上or会使得and不起作用,因为一开始and筛选了数据,后来or有新增了已经筛选的数据;

正确做法:

where 1=1 and (ename='20') and (ejob <> 'clerk') or (eleader like '%a%' and  ejob <> 'clerk' and ename='20')

这样or的时候会把过滤掉想要过滤的数据;

Mybatis-plus这样写:

queryWrapper.or(i->i.like("eleader","a").ne("clerk",'a')) 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值