我搜索 head 是 一厂的某个设备模糊搜索(head是下拉 选择厂)。
这时候我把二厂 三厂 类似名子也搜索出来了。 所以说我们这个模糊查询也要改一下。
要同时搜索`headId`和`q`,并且确保`headId`条件始终生效,您可以将这两个条件分别设置, 并使用`and()`逻辑运算符连接它们。这样可以确保同时满足`headId`和`q`条件的记录被正确筛选出来。 以下是您可以修改的代码示例: ```java @Override public Page<Shebei> list(Map<String, Object> map, Integer page, Integer limit) { Page<Shebei> pageBean = new Page<Shebei>(page, limit); LambdaQueryWrapper<Shebei> queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.orderByAsc(Shebei::getOrderNo); if (map.get("headId") != null) { queryWrapper.eq(Shebei::getHeadId, map.get("headId")); } if (map.get("q") != null) { queryWrapper.and(wrapper -> wrapper .like(Shebei::getName, map.get("q")) .or() .like(Shebei::getPos, map.get("q")) .or() .like(Shebei::getXinghao, map.get("q")) .or() .like(Shebei::getWei, map.get("q")) ); } // 添加其他条件的代码... Page<Shebei> page2 = shebeiMapper.selectPage(pageBean, queryWrapper); return page2; } ``` 在上述代码中,我们使用`and()`逻辑运算符将`headId`和`q`条件连接在一起,确保这两个条件同时生效。 这样可以保证在搜索时同时考虑`headId`和`q`条件,且`headId`条件不会被覆盖。您可以根据需要继续添加其他条件。
模糊查询不能使用like 要使用and
@Override public Page<Shebei> list(Map<String, Object> map, Integer page, Integer limit) { Page<Shebei> pageBean = new Page<Shebei>(page, limit); LambdaQueryWrapper<Shebei> queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.orderByAsc(Shebei::getOrderNo); if( map.get("headId")!=null){ queryWrapper.eq(Shebei::getHeadId,map.get("headId")); } if( map.get("recordHeadId")!=null){ queryWrapper.eq(Shebei::getRecordHeadId,map.get("recordHeadId")); } if( map.get("name")!=null){ queryWrapper.eq(Shebei::getName,map.get("name")); } if( map.get("xinghao")!=null){ queryWrapper.eq(Shebei::getXinghao,map.get("xinghao")); } if( map.get("pos")!=null){ queryWrapper.eq(Shebei::getPos,map.get("pos")); } if( map.get("wei")!=null){ queryWrapper.eq(Shebei::getWei,map.get("wei")); } if( map.get("type")!=null){ queryWrapper.eq(Shebei::getType,map.get("type")); } if( map.get("state")!=null){ queryWrapper.eq(Shebei::getState,map.get("state")); } if( map.get("q")!=null){ queryWrapper.like(Shebei::getName,map.get("q")) .or() .like(Shebei::getPos,map.get("q")) .or() .like(Shebei::getXinghao,map.get("q")) .or() .like(Shebei::getWei,map.get("q")) ; } //参数1分页 参数2分页条件。 Page<Shebei> page2 = shebeiMapper.selectPage(pageBean, queryWrapper); //总记录total return page2; }
站长微信:xiaomao0055
站长QQ:14496453