0
点赞
收藏
分享

微信扫一扫

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')) 

举报

相关推荐

0 条评论