MybatisPlus在任意搜索条件加括号
在sql语句略微复杂的情况下,例如出现多个and以及多个or,甚至同时存在。应对其进行查询条还能的分类。例如(and...or...or... / (and...or)...or... / (and...(or...or) )
·
项目场景:
在sql语句略微复杂的情况下,例如出现多个and以及多个or,甚至同时存在。应对其进行查询条还能的分类。例如(and...or...or... / (and...or)...or... / (and...(or...or) )
问题描述
若场景需要如此格式:(and...(or...or))
若简单的使用lambda表达式进行wrapper的添加,最后造成的结果是and...or...or。
wrapper.eq()
wrapper.like(.or())是错误的!!!!!!
解决方案:
提示:使用.and()进行括号的添加
wrapper.eq();
wrapper.and(QueryWrapper -> QueryWrapper.eq("name", name).or().eq("mark", mark));
//若使用多个like,则需要对其所有的like条件进行一个括号包裹,还不能忘记or
wrapper.and(LambdaQueryWrapper -> {
for (String date : dates) {
LambdaQueryWrapper.likeRight(InformationResources::getReleaseTime, date).or();
}
});
结果
结果从and...or...or 变为 and...(or...or...)成功
博客参考:Mybatis-plus 查询语句加括号(.or(),.and())_mybatis 括号_叶梓啊的博客-CSDN博客
更多推荐
已为社区贡献1条内容
所有评论(0)