项目场景:

在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博客

Logo

数据库是今天社会发展不可缺少的重要技术,它可以把大量的信息进行有序的存储和管理,为企业的数据处理提供了强大的保障。

更多推荐