这篇“mybatisplus where QueryWrapper怎么加括号嵌套查询”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章
这篇“mybatisplus where QueryWrapper怎么加括号嵌套查询”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“mybatisplus where QueryWrapper怎么加括号嵌套查询”文章吧。
之前的代码是这个样子的:
QueryWrapper<RyxyMemberEntity> wrapper = new QueryWrapper<>(); wrapper.eq("phoneNumber", phone); if (StringUtils.isEmpty(scenetype)){ wrapper.isNull("scenetype").or().eq("scenetype", ""); } wrapper.eq("delFlag", "0");
相对应的sql语句如下:
WHERE( phoneNumber = 156****8888 AND scenetype IS NULL OR scenetype = "" AND delFlag = 0)
这并不是我想要的sql语句,查询的数据也不正确,对scenetype的查询应该是括起来的,满足其一条件即可,也就是这样:
WHERE( phoneNumber = 156****8888 AND (scenetype IS NULL OR scenetype = "") AND delFlag = 0)
相对应的代码应该这样写才对:
QueryWrapper<RyxyMemberEntity> wrapper = new QueryWrapper<>(); wrapper.eq("phoneNumber", phone); if(StringUtils.isEmpty(scenetype)) { wrapper.and( e -> e.isNull("scenetype") .or().eq("scenetype", "") ); } wrapper.eq("delFlag", "0");
java代码:
QueryWrapper<Entity> wrapper = new QueryWrapper<>();wrapper.ne("id", param.getId())wrapper.and(QueryWrapper -> QueryWrapper.eq("name", name).or().eq("mark", mark)); entityMapper.selectList(wrapper);
等价sql
SELECT id FROM t_entity WHERE (id <> ? AND (name = ? OR mark = ?))
每个and相当于一个括号
以上就是关于“mybatisplus where QueryWrapper怎么加括号嵌套查询”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网精选频道。
--结束END--
本文标题: mybatisplus where QueryWrapper怎么加括号嵌套查询
本文链接: https://lsjlt.com/news/306867.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0