免费资源网 – https://freexyz.cn/
搞混了一次,特此笔记
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='张三' 一致
免费资源网 – https://freexyz.cn/
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
评论(0)