Mybatis-Plus中or()的使用避坑

1.连接 or()

当需要简单的将两个条件或连接,则最直接的写法为:

QueryWrapper<User> queryWrapper = new QueryWrapper<User>().
eq("status",0).
or().
eq("status",1);

//sql条件为  select * from user where status=0 or status=1

2.连接 or()

当多个条件共同拼接,则最直接的写法为: 要么把or()拼接放最前面,要么用queryWrapper.and(

qr.eq("status", 1).or().like("status", 2)),要不查询的数据会有偏差,queryWrapper.and相当于把两个条件()一块;

QueryWrapper<User> queryWrapper = new QueryWrapper<User>().
eq("status",0).
or().
eq("status",1)
eq("user_name","张三");

//sql条件为  select * from user where status=0 or status=1 and user_name='张三'




QueryWrapper<User> queryWrapper = new QueryWrapper<User>().
eq("user_name","张三").
eq("status",0).
or().
eq("status",1);

//sql条件为  select * from user where user_name='张三' and  status=0 or status=1 
查询出来的数据和select * from user where status=0 or status=1 and  user_name='张三' 不一致

QueryWrapper<User> queryWrapper = new QueryWrapper<User>().
eq("user_name","张三").and(q->q.eq("status",0).
or().
eq("status",1));

select * from user where select * from user where user_name='张三' and (status=0 or status=1 ) 查询出来的数据和select * from user where status=0 or status=1 and  user_name='张三' 一致

  • 9
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值