mybatisplus where或and后面的条件用括号括起来
今天在使用mybatisplus时需要将and后面的or条件使用括号包起来
@ApiOperation(value = "查看粉丝列表", notes = "查看粉丝列表")@PostMapping("/fansList")public ResultVO<ResultListVO<LitemallBusiness>> fansList(@RequestParam(value = "bid") Integer bid,@RequestParam(value = "nickName", required = false) String nickName) {try {QueryWrapper<LitemallBusiness> queryWrapperw = new QueryWrapper<LitemallBusiness>();queryWrapperw.eq("pid", bid).or().eq("pid2",bid);if (nickName != null && !nickName.equals("")) {queryWrapperw.like("nick_name", nickName);}queryWrapperw.eq("deleted", false);List<LitemallBusiness> litemall_businessList = businessService.list(queryWrapperw);return ResponseUtil.okList(litemall_businessList);} catch (Exception e) {e.printStackTrace();return ResponseUtil.serious();}}
打印输出的sql
select * form litemall_business where deleted=0 and pid=1 or pid2=1
此条sql是没办法满足我需要的数据
实际上的我需要执行的sql是需要把and后面的or用()包起来作为一个条件来查询
所以mybatisplus的原生查询方法需要修改为:
@ApiOperation(value = "查看粉丝列表", notes = "查看粉丝列表")@PostMapping("/fansList")public ResultVO<ResultListVO<LitemallBusiness>> fansList(@RequestParam(value = "bid") Integer bid,@RequestParam(value = "nickName", required = false) String nickName) {try {QueryWrapper<LitemallBusiness> queryWrapperw = new QueryWrapper<LitemallBusiness>();queryWrapperw.and(wrapper -> wrapper.eq("pid", bid).or().eq("pid2", bid));// queryWrapperw.eq("pid", bid).or().eq("pid2",bid);if (nickName != null && !nickName.equals("")) {queryWrapperw.like("nick_name", nickName);}queryWrapperw.eq("deleted", false);List<LitemallBusiness> litemall_businessList = businessService.list(queryWrapperw);return ResponseUtil.okList(litemall_businessList);} catch (Exception e) {e.printStackTrace();return ResponseUtil.serious();}}
这样sql打印出来就是:
select * form litemall_business where deleted=0 and (pid=1 or pid2=1)
这样就满足了我把and后面的or作为一个整体
这里需要注意的是:我的mybatisplus版本是3.0.7.1,这个版本中是没有andNew()的方法,所以需要使用这种方法时查看你的版本是否和我的一样,还有一点要注意,不要丢弃了语句中的.and()
这里顺便补充一下andNew()的写法
//mybatisplus版本3.0.7.1 jdk1.8
queryWrapperw.and(wrapper -> wrapper.eq("pid", bid).or().eq("pid2", bid));
//执行sql
select * form litemall_business where deleted=0 and (pid=1 or pid2=1)//mybatisplus版本低于3.0.7.1
queryWrapperw.andNew().eq("pid", bid).or().eq("pid2", bid);
//执行sql
select * form litemall_business where deleted=0 and (pid=1 or pid2=1)
其实最终执行的sql是一样的
mybatisplus where或and后面的条件用括号括起来相关推荐
- mybatisplus where语句里面的条件用括号括起来
SQL:SELECT * FROM User where xl='1' and (Zt = '待审核' or Zt = '已驳回') and xh='2' 需要用mybatisplus实现: User ...
- Mybatis-Plus实战中的几个条件构造器Wrapper用法
Mybatis-Plus实战中的几个条件构造器Wrapper用法 其实Wrapper有很多其他的方法,组合起来也是殊途同归,大家可以自己点开源码去查看一些方法的使用说明 @Testvoid conte ...
- SpringBoot+MyBatisPlus实现前端传递时间查询条件ajax请求后台并回显数据流程整理
场景 前端时间选择控件,选择时间后点击搜索,请求后台数据,后台根据时间查询数据库中 一天的记录数并回显给前端,前端进行显示. 实现 前端页面代码(部分) <div class="ibo ...
- MybatisPlus多表联查分页多条件查
一.mapper 注意: 1,${ew.customSqlSegment}不用管加上就行,主要作用是让wrapper中的sql自动拼接上去,分页会自动拼接@select中只需要让多表关联上就行 2,g ...
- Mybatis-Plus查询语句无故自动加条件
一.问题 今日写业务,分页查询使用 warpOPDefaultLike(xxxSearchDTO).build() 方法,在控制台打印出来的sql语句结尾莫名加上了 "where state ...
- mybatisPlus根据起止时间作为条件进行查询
背景 查询当天凌晨0.00 到当前时间的数据 代码 SimpleDateFormat wrapperSdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm ...
- python 数列筛选_numpy ndarray 按条件筛选数组,关联筛选的例子
最近的项目中大量涉及数据的预处理工作,对于ndarray的使用非常频繁.其中ndarray如何进行数值筛选,总结了几种方法. 1.按某些固定值筛选 如下面这段代码从,ndarray中可以筛选出数值等于 ...
- (转载)Python数据分析之pandas学习
转载地址:http://www.cnblogs.com/nxld/p/6058591.html Python中的pandas模块进行数据分析. 接下来pandas介绍中将学习到如下8块内容: 1.数据 ...
- 深度之眼课程打卡-python入门05
目录 文章目录 目录 前言 内容 一.数据结构介绍 1.Series的创建 2.DataFrame的创建 二.数据索引index 1.通过索引值或索引标签获取数据 2.自动化对齐 三.利用pandas ...
最新文章
- c语言输出精确圆周率,如何设计C语言程序输出圆周率小数点后的1000位?请大侠出手啊。...
- 盘点过去一年,MIT人工智能实验室的那些创新
- 开发流媒体服务器_Github选出10大开源免费的RTSP流媒体项目
- 滚动条加载功能实现(懒加载)
- 模块怎么用_IC设计方法:模块划分与overdesign
- 英特尔自动驾驶部门秘密申请IPO 有望成今年美股规模最大IPO
- 是否有唯一的Android设备ID?
- 高仿精仿快播应用android源码下载
- php映射关系二维数组,php – 在二维数组中映射值并对值执行函数
- Spring的JdbcTemplate实现分页
- 王海婷也可以编程,厚脸皮谈自己的一些事情
- 圆通电子面单接口对接
- 使用html仿支付宝首页,仿支付宝首页头部伸缩效果
- ubuntu系统,网页版音乐播放器无声音
- vector实现 并交差 集实例
- 士不可不弘毅,任重而道远——2021年总结
- android win10 投屏,安卓手机投影win10不成功,版本升级前可以
- 做计算机的小卫士教案,小学信息技术教案四年级上环保小卫士
- python对txt文本文件边读边写,同时读取和写入的方式修改文件
- 前端必备:五大css自动化生成网站(稀有级别!)
热门文章
- Graph Visualization and Navigation in Information Visualization: A Survey 译文
- 在Excel中选取一行中的最大数值进行标题匹配
- 哪些人适合转行学习IT技术呢
- SQL Server 简单模式下,误删除堆表记录如何恢复(绕过页眉校验)
- redis cluster 集群 HA 原理和实操(史上最全、面试必备)
- 设置什么加快计算机启动速度,如何设置CPU加速对电脑启动速度的方法(更改CPU数量可开机提速)...
- MacOS Ventura 13.1 (22C65) 正式版带 OC 0.8.7 and winPE 双分区原版黑苹果镜像
- 获取数据库表格的字段名、类型、长度、注释等属性
- 10大最受欢迎的国外业务流程管理(BPM)软件
- 如何解决Selenium打不开Ie浏览器