mybatis-plus sql拼接加括号

场景:

在代码中使用mybatis-plus进行sql的查询,条件略微复杂,需要拼接多个or的情况下,如

and...or...or... / (and...or)...or... / (and...(or...or) )

举例1:

(and...(or...or))的格式

若简单的使用lambda表达式进行wrapper的添加,最后造成的结果是and...or...or。

wrapper.eq().or().eq();

这样是行不通的

解决方案:

从and...or...or 变为 and...(or...or...)

wrapper.and(wp -> wp.eq().or().eq());

SELECT * FROM t_user WHERE (id <> ?  AND (name = ? OR sex= ?))

举例2:

(and...(or...and))的格式

这种情况是多种条件拼接

解决方案:

wrapper.and(wp -> wp.eq().or(w -> w.eq().eq()));

SELECT * FROM t_user WHERE (id <> ?  or (id = ? and name = ?))

另外需要注意like的使用:

wrapper.eq();

wrapper.like(.or());

这样是行不通的

解决方法:

wrapper.eq();
wrapper.and(QueryWrapper -> QueryWrapper.eq("name", name).or().eq("sex", sex));

使用.and()进行括号的添加 

//若使用多个like,则需要对其所有的like条件进行一个括号包裹,还不能忘记or
wrapper.and(LambdaQueryWrapper -> {
   for (String name : names) {
      LambdaQueryWrapper.likeRight(User::getName, name).or();
   }
});

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/35522.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【el-cascader 多级多选限制条数】

<el-cascaderref"cascaderJob"v-if"categoryjobOptions.length > 0"class"el_input_widht"v-model"categoryjobValue"placeholder"职位分类":options"categoryjobOptions":props"{multiple: true, che…

autoware.universe源码略读(3.3)--perception:tensorrt_yolo

autoware.universe源码略读3.3--perception&#xff1a;tensorrt_yolo 模块组成cuda_utils&#xff08;CUDA接口&#xff09;calibrator&#xff08;校准器&#xff09;ImageStreamInt8EntropyCalibrator mish&#xff08;mish激活函数&#xff0c;基于CUDA&#xff09;mish_p…

Python22 Pandas库

Pandas 是一个Python数据分析库&#xff0c;它提供了高性能、易于使用的数据结构和数据分析工具。这个库适用于处理和分析输入数据&#xff0c;常见于统计分析、金融分析、社会科学研究等领域。 1.Pandas的核心功能 Pandas 库的核心功能包括&#xff1a; 1.数据结构&#xff…

ODYSSEE加速电机仿真优化

由于对低碳社会的强烈需求&#xff0c;电动汽车(EV)和混合动力汽车(HEV)的数量正在迅速增长。新能源汽车的主要部件是电池、逆变器和电机。电机市场的规模也将不断扩大。为了提高EV的性能&#xff0c;对电机设计工程师的要求越来越高。 除了EV市场&#xff0c;协作机器人市场也…

【Linux】gdb调试器

一、gdb调试器背景 程序的发布方式有两种&#xff0c;debug模式和release模式 Linux gcc/g出来的二进制程序&#xff0c;默认是release模式 要使用gdb调试&#xff0c;必须在源代码生成二进制程序的时候, 加上 -g 选项 二、安装gdb yum install gdb三、使用gdb 在Linux当中g…

Spark运行spark-shell与hive运行时均报错的一种解决方案

环境按照尚硅谷的配置的。 在运行hive的时候&#xff0c;报错代码为30041&#xff0c;无法执行insert语句。 在运行spark-shell的时候&#xff0c;报错&#xff0c;无法进入到shell脚本中。 可能的问题&#xff1a; 对集群设置的域名与集群的主机名称不一致。 例如&#xff1a;…

Cesium入门:Camera的关键知识点

作者: 还是大剑师兰特 ,曾为美国某知名大学计算机专业研究生,现为国内GIS领域高级前端工程师,CSDN知名博主,深耕openlayers、leaflet、mapbox、cesium,canvas,echarts等技术开发,欢迎加微信(gis-dajianshi),一起交流。 查看本专栏目录 - 本文是第 078篇文章 文章目录…

Lombok使用说明

Lombok 是一个用于 Java 的库&#xff0c;能够显著减少样板代码&#xff08;boilerplate code&#xff09;&#xff0c;使代码更加简洁和易于维护。以下是对 Lombok 的一些常见用法的介绍。 1. 安装 Lombok 要使用 Lombok&#xff0c;首先需要在项目中引入它。对于 Maven 项目…

快速高效的菲律宾海运攻略

快速高效的菲律宾海运攻略 【14天送达】菲律宾海运攻略来了&#xff01;你是不是也在为如何将机器发货到菲律宾而烦恼&#xff1f;别担心&#xff0c;今天小编就为大家详细讲解一下整个流程&#xff01; 第一步&#xff1a;准备货物和文件 首先确保你的机器包装完好无损&#x…

使用c++栈刷题时踩坑的小白错误

根据图片中提供的代码&#xff0c;可以发现以下三处错误&#xff1a; 错误原因&#xff1a;条件判断语句的逻辑错误。 代码行&#xff1a;if (res.top() ! e || res.empty())&#xff08;第7行&#xff09; 问题&#xff1a;如果 res 为空&#xff08;res.empty() 为 true&…

mac卡牌游戏:堆叠大陆 Stacklands for Mac 中文安装包

Stacklands 是一款轻松益智的堆叠游戏。玩家需要在游戏中不断堆叠不同形状和大小的方块&#xff0c;使它们尽可能地稳定地堆放在一起。游戏中有多种不同的关卡和挑战&#xff0c;玩家需要通过合理的堆叠方式来完成每个关卡。游戏画面简洁明快&#xff0c;操作简单直观&#xff…

视频分享的二维码怎么做?多种视频可用的二维码制作技巧

视频分享的快捷操作技巧可以在二维码生成器上来制作&#xff0c;与传统分享方式相比用二维码的方法能够更快捷&#xff0c;有利于用户能够在不下载视频占用空间的同时&#xff0c;就能够扫描二维码观看视频内容。视频二维码能够应用于很多的场景下&#xff0c;那么制作一个视频…

Navicat Premium Lite绿色免费版

版权声明 本文原创作者&#xff1a;谷哥的小弟作者博客地址&#xff1a;http://blog.csdn.net/lfdfhl Navicat Premium Lite概述 Navicat 最近推出了一款名为 Navicat Premium Lite 的免费数据库管理开发工具&#xff0c;专为入门级用户设计。这款工具虽然在功能上与 Navicat…

k8s调度策略管理

Pod调度策略 调度策略概述 ● 什么是调度分配 - 在k8s中&#xff0c;调度是将Pod分配到合适的计算节点上&#xff0c;然后对应节点上的Kubelet运行这些pod - kube-scheduler是默认调度器&#xff0c;是集群的核心组件 ● 调度器是如何工作的 - 调度器通过k8s的监测(Watch)机制来…

新改进!LSTM与注意力机制结合,性能一整个拿捏住

众所周知&#xff0c;LSTM并不能很好地处理长序列和重要信息的突出&#xff0c;这导致在某些情况下性能不佳。而注意力机制模拟人类视觉注意力机制的特点可以很好地解决这个问题。 说具体点就是&#xff0c;注意力机制通过权重分布来决定应该关注输入序列中的哪些部分&#xf…

程序员学长 | 快速学会一个算法,RNN

本文来源公众号“程序员学长”&#xff0c;仅用于学术分享&#xff0c;侵权删&#xff0c;干货满满。 原文链接&#xff1a;快速学会一个算法&#xff0c;RNN 今天给大家分享一个超强的算法模型&#xff0c;RNN 循环神经网络&#xff08;Recurrent Neural Network, RNN&…

为什么使用PreparedStatement而不是Statement?

使用PreparedStatement而不是Statement的原因主要有以下几点&#xff1a; 安全性&#xff1a; PreparedStatement使用参数化查询&#xff0c;能够避免SQL注入攻击。这是因为PreparedStatement在将SQL语句发送到数据库之前会进行预编译&#xff0c;并且使用占位符&#xff08;如…

不花一分钱也能制作出高质量的宣传册

在当今竞争激烈的市场环境中&#xff0c;拥有一份高质量的宣传册对于企业或个人来说至关重要。它能帮助您在客户心中留下深刻印象&#xff0c;有效推广您的品牌或服务。但聘请专业设计师和印刷商制作宣传册往往需要不小的开支。那么&#xff0c;有没有既省钱又能做出高质量宣传…

flask水质监测预警系统-计算机毕业设计源码10148

摘 要 近些年来&#xff0c;对河道水位进行实时、准确的监测越来越受到广大人民群众的重视。然而要建立一个稳定的、可靠地、准确的城市河道水位远程监测系统&#xff0c;就必须要解决由人工监测向自动化监测的转变&#xff0c;使用新科技来进行设计。水质监测预警系统是以实际…

Python在自然语言处理中的应用:从基础到实战

Python在自然语言处理中的应用:从基础到实战 自然语言处理(NLP)是人工智能的一个重要分支,旨在通过计算机来理解、解释和生成人类语言。Python凭借其丰富的库和简洁的语法,在NLP领域得到了广泛应用。本文将介绍Python在NLP中的基础知识、常用库以及一个完整的实战项目,帮…