mybatisplus|mybatisplus where QueryWrapper加括号嵌套查询方式
目录
- whereQueryWrapper加括号嵌套查询
- mybatisplus查询语句加括号(.or(),.and())
where QueryWrapper加括号嵌套查询 之前的代码是这个样子的:
QueryWrapperwrapper = 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)
【mybatisplus|mybatisplus where QueryWrapper加括号嵌套查询方式】相对应的代码应该这样写才对:
QueryWrapperwrapper = new QueryWrapper<>(); wrapper.eq("phoneNumber", phone); if(StringUtils.isEmpty(scenetype)) {wrapper.and(e -> e.isNull("scenetype").or().eq("scenetype", "")); }wrapper.eq("delFlag", "0");
mybatisplus查询语句加括号(.or(),.and()) java代码:
QueryWrapperwrapper = 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相当于一个括号
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
推荐阅读
- 关于QueryWrapper|关于QueryWrapper,实现MybatisPlus多表关联查询方式
- mybatisplus如何在xml的连表查询中使用queryWrapper
- MybatisPlus|MybatisPlus LambdaQueryWrapper使用int默认值的坑及解决
- MybatisPlus使用queryWrapper如何实现复杂查询
- PHP|PHP Everywhere 三个 RCE 漏洞威胁大量 WordPress 网站
- MybatisPlus多表连接查询
- 使用 KubeSphere 管理 Amazon EKS Anywhere 集群
- 小程序云开发数据库where的返回值
- mybatisPlus|mybatis 拦截器(实现简单多租户 + 整合 mybatis plus 不影响分页插件 )
- Linux之whereis命令