欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

MybatisPlus多条件 or()的使用问题小结,

来源: javaer 分享于  点击 367 次 点评:170

MybatisPlus多条件 or()的使用问题小结,


搞混了一次,特此笔记

1、bitCode or iotStr 跟其他ID一个都不能有重复

queryWrapper.ne(LineProductionPlan::getId,bean.getId());
        queryWrapper.and(i -> i.eq(LineProductionPlan::getBitCode,bean.getBitCode()).or().eq(LineProductionPlan::getIotStr,bean.getIotStr()));

打印sql

2、模糊查询codeOrName变量匹配二个字段

queryWrapper.lambda().and(StrUtil.isNotEmpty(codeOrName), i -> i.like(Point::getName, codeOrName).or().like(Point::getBitCode, codeOrName));

扩展: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='张三' 一致

到此这篇关于MybatisPlus多条件 or()的使用的文章就介绍到这了,更多相关MybatisPlus多条件 or()内容请搜索3672js教程以前的文章或继续浏览下面的相关文章希望大家以后多多支持3672js教程!

您可能感兴趣的文章:
  • MybatisPlus分页查询与多条件查询介绍及查询过程中空值问题的解决
  • MyBatisPlus-QueryWrapper多条件查询及修改方式
  • MyBatisPlus中使用or()和and()遇到的问题及细节处理
相关栏目:

用户点评