Mybatis的如何根据下划线_,百分号%模糊查询---escape的作用

java使用mysql的escape遇到的坑.pdf java使用mysql的escape遇到的坑 立即下载

在使用mybatis的模糊查询时,有两个特殊符号需要注意:

%:相当于任意多个字符;

_:相当于任意的单个字符;

我们需要对特殊字符进行转义,如:

public static String escapeChar(String before){
   if(!ObjectUtils.isEmpty(before)){
   		 before = before.replaceAll("/", "//") ;
		 before = before.replaceAll("_", "/_") ;
		 before = before.replaceAll("%", "/%") ;
 }
   return before ;
}

       但我们在使用LIKE关键字进行模糊查询时,“%”、“”单独出现时,会被认为是通配符,且上面我们对下划线和百分号进行转义过就查不出来了,该怎么办?为了在字符数据类型的列中查询是否存在百分号 (%)、下划线(),就需要有一种方法将LIKE判式中的这些字符看作是实际值,而不是通配符。关键字 ESCAPE允许确定一个转义字符将紧跟在转义字符之后的字符看作是实际值。

使用escape来定义转义符。如:

select * from A where a like '%sully/_%' escape '/';   
select * from A where a like '%sully/%%' escape '/'; 

escape ‘/’ 指用’/'说明后面的%或_就不作为通配符而是普通字符了,注意前面没有转义字符的%仍然起通配符作用
结合mybatisplus

if(ObjectUtils.isNotEmpty(name)){
  name = SQLEscapeUtil.escapeChar(name);
  wrapper.andNew("name like '%'||'" + name + "'||'%' escape '/'");
}

注意这里的空格和单引号都要是英文。

  • 模糊查询的三种常用写法: like concat(’%’,#{param},’%’) 或者 like ‘%${param}%’ ,还有就是上面那种 like ‘%’ || #{param} || ‘%’。
cesium 高程数据使用 cesium 高程数据使用高程数据下载高程数据切片简单数据服务 高程数据下载 使用地理空间数据云平台免费提供的高程数据。地理空间云平台 点击列表中的下载得到数据压缩包。例如:ASTGTM2_N22E114.zip 高程数据切片 使用cesium实验室工具对下载得到的压缩包进行切片。cesium实验室 切片得到的文件夹目录。 简单数据服务 使用nodejs的koa启动简单的资源服务。koajs 项目根目录新建data文件夹,在新建dem文件夹放高程数据。 注意目录自行更换,这里是./data/dem 阅读详情

相关推荐

从零开始:YOLOv8车牌检测模型训练全流程实战

本文详细介绍了从零开始训练YOLOv8车牌检测模型的全流程实战指南。内容涵盖环境搭建、数据集收集与标注、模型配置与训练、评估测试及高级优化技巧。通过使用预训练模型和迁移学习,开发者可以高效构建精准的车牌检测系统,并掌握模型导出与部署的关键步骤。

weixin_29061041的博客 336

Mybatis解决模糊查询中有通配符的情况(用Escape关键字)

Mybatis解决模糊查询中有通配符的情况(用Escape关键字)

努力努力再努力 2267

从零到一:树莓派上的YOLO目标检测实战指南

本文详细介绍了如何在树莓派上部署和优化YOLO目标检测模型,从硬件选型到系统配置,再到模型转换与推理优化。通过对比不同树莓派型号的性能差异,提供实用的配置方案和代码示例,帮助开发者快速实现高效的边缘计算视觉系统。特别推荐使用ONNX格式进行模型转换,以提升在树莓派上的推理效率。

weixin_29046035的博客 1063

Mybatis的sql语句中下划线_,百分号%的转义处理---escape的作用

escape 是sql中的关键字,定义转义字符。如下:SELECT * FROM student t where t.name like '%/%' escape '/';执行结果为:SELECT * FROM student t where t.name like '%%' escape '/';执行结果为:注:由此可见,escape '/' 是指用'/'说明在/后面的字符不是通配符,而是普通符...

杨杨得懿的博客 3万+

三维点云孔洞修复(附Python代码和公共点云数据集链接)

(1)物体自身缺失(2)物体自身形状复杂,很多凹凸面不够规则甚至存在空腔,空腔内部无法被三维激光扫描仪扫描到(3)物体部分区域对激光扫描不敏感,未被扫描上(4)扫描仪的扫描稳定性。

yanghl1215的博客 6954

如何让 RTX 5090 开启 PCIE P2P 以加速多卡通信

RTX 5090 基于新的 Blackwell 架构。NVIDIA 出于对某些主板兼容性(如 IOMMU、Resizable BAR 策略)的保守考虑,**屏蔽了 5090 的 BAR1 P2P 功能**。 我们需要通过 Patch 驱动源码,强制开启这一隐藏功能。 开启 P2P 后,PyTorch 的集合通信算子(Multi-GPU 训练的核心)延迟显著降低,**All-Reduce 甚至降低了 60% 以上**。

Hi20240217的博客 1743

Mybatis笔记

自动填充 遍历集合 trim标签

xing3037的博客 455

Vector CANoe VT2516A实战:从硬件连接到CAPL脚本的完整配置指南

本文详细介绍了Vector CANoe VT2516A板卡从硬件连接到CAPL脚本编写的完整配置指南。涵盖硬件接线原则、VT System配置避坑技巧、系统变量创建规范、可视化Panel设计、CAPL脚本调试及典型故障排查案例,帮助工程师快速掌握VT2516A板卡的应用实践,提升汽车电子测试效率。

weixin_30608503的博客 255

mybatis对特殊字符的模糊查询

mybatis对特殊字符的模糊查询 最近开发一个功能时遇到的问题,pg数据库里面存储的有包含"_"下划线的名字时,模块查询使用 下划线 作为关键字进行模块查询时,会把所有数据查出来,发现是使用LIKE关键字进行模糊查询时,%、下划线 和 [] 单独出现时,会被认为是通配符,所以需要进行转义,然后通过ESCAPE告诉数据库转义字符后的字符为实际值。 首先对关键字进行转义 if (ke...

jacklife的博客 4322

基于DNN神经网络的多输入多输出数据回归预测(附带Matlab代码)

假设我们的输入数据包含n个特征,输出数据包含m个特征。在本文中,我们将介绍如何使用DNN(深度神经网络)实现多输入多输出数据回归预测,并提供相应的Matlab代码。需要注意的是,上述代码中的DNN模型是一个简化的示例,您可以根据实际任务的复杂程度和要求进行相应的调整和优化。综上所述,我们介绍了如何使用DNN神经网络实现多输入多输出数据回归预测,并提供了相应的Matlab代码。函数对DNN模型进行训练,其中输入数据需要转置,以适应网络的输入要求。最后,我们使用训练好的模型对测试数据进行预测,并打印预测结果。

DevWizard的博客 1069

ParaView: GUI 轴网格

ParaView: GUI 轴网格

希望我的博客,能帮上你解决学习中工作中所遇到的问题 1924

sql语句中下划线_,百分号%处理

sql语句中下划线_,百分号%处理 1、使用ESCAPE定义转义符 如下面的表达式: LIKE '%M%' ESCAPE ‘M' 使用ESCAPE关键字定义了转义字符“M”,告诉DBMS将搜索字符串“%M%”中的第二个百分符(%)作为实际值,而不是通配符。当然,第一个百分符(%)仍然被看作是通配符,因此满足该查询条件的字符串为所有以%结尾的字符串。 2、使用INSTR替换like INSTR不会识别通配符,只会判断第二个字符串参数在第一个字符串中是否存在。确保此论是有据可依的,上官网。 使用:

qq_44741171的博客 3446

CAPL如何设置或修改CANoe TCP/IP协议栈的底层配置

MSS = MTU - tcpHeader - ipHeader,也就是MTU = MSS(1360) + tcpHeader(20) + ipHeader(20) = 1400,说明CAPL是可以动态设置网络底层配置参数的!然后在CAPL中设置此网卡MTU值为1400,然后创建UDP套接字,一次性发送2000个字节,在Trace窗口看看首帧报文二层Data的长度。所以我们还不能用UDP协议来验,应该用TCP协议来验,也就是在TCP三次握手时通过Tester的MSS值推导出自己的MTU值。

jasonj333 992

mysql中下划线 转译_Mybatis的sql语句中下划线_,百分号%的转义处理---escape的作用【转】...

源地址:https://blog.youkuaiyun.com/yh869585771/article/details/80276437综述在使用LIKE关键字进行模糊查询时,“%”、“_”和“[]”单独出现时,会被认为是通配符。为了在字符数据类型的列中查询是否存在百分号 (%)、下划线(_)或者方括号([])字符,就需要有一种方法进行转义思路解决办法---使用ESCAPE定义转义符在使用LIKE关键字进行模...

weixin_42422362的博客 1840

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

mysql中模糊查询,在页面中输入%查询全部的问题处理

在使用mybatis的模糊查询时,有两个特殊符号需要注意: %(百分号):相当于任意多个字符; _(下划线):相当于任意的单个字符; 处理方法: 1:(查询条件参数,比如"xx%_x")param.replaceAll("%", “/%”).replaceAll("-", “/-”) 2:select * from table where column like concat(’%’,#{param},’%’) escape ‘/’; 处理之后百分号%、下划线_在mybatis执行该拼接的sql语句的时候就

qq_21223653的博客 7198

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

mybatis模糊查询特殊符号%(百分号)和_(下划线)不转义

在使用mybatis的模糊查询时,有两个特殊符号需要注意: %(百分号):相当于任意多个字符; _(下划线):相当于任意的单个字符; 处理方法: 1: (查询条件参数,比如"xx%_x")param.replaceAll("%", "/%").replaceAll("-", "/-") 2-1: select * from table where column like concat('%',#{param},'%') escape '/'; 2-2: vc.title like conc

qq_28433521的博客 4563

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

解决mybatis 只查询含有%的关键字的模糊查询匹配

综述 在使用LIKE关键字进行模糊查询时,“%”、“_”和“[]”单独出现时,会被认为是通配符。为了在字符数据类型的列中查询是否存在百分号 (%)、下划线(_)或者方括号([])字符,就需要有一种方法进行转义 思路 解决办法---使用ESCAPE定义转义符 在使用LIKE关键字进行模糊查询时,“%”、“_”和“[]”单独出现时,会被认为是通配符。为了在字符...

qq_20610631的博客 3034

模糊查询like特殊符号%(百分号)和_(下划线)当普通字符处理,避免查询出所有数据

在模糊查询时,有两个特殊符号需要注意: %(百分号):相当于任意多个字符; _(下划线):相当于任意的单个字符; 处理方法:使用escape关键字 1:(查询条件参数,比如"xx%_x")param.replaceAll("%", “/%”).replaceAll("-", “/-”) 2:select * from table where column like concat(’%’,#{param},’%’) escape ‘/’; 处理之后百分号%、下划线_在mybatis执行该拼接的sql语句的时候

u011105400的专栏 5874

mysql 模糊查询下划线_mybatis模糊查询特殊符号%(百分号)和_(下划线)不转义

在使用mybatis的模糊查询时,有两个特殊符号需要注意:%(百分号):相当于任意多个字符;_(下划线):相当于任意的单个字符;处理方法:1:(查询条件参数,比如"xx%_x")param.replaceAll("%", "/%").replaceAll("-", "/-")2-1:select * from table where column like concat('%',#{param},...

weixin_39963523的博客 1681

Mybatis的sql模糊搜索参数里包含百分号(%)和下划线(-)

综述 在使用LIKE关键字进行模糊查询时,“%”、“_”和“[]”单独出现时,会被认为是通配符。为了在字符数据类型的列中查询是否存在百分号 (%)、下划线(_)或者方括号([])字符,就需要有一种方法进行转义 解决方法 把进行模糊搜索的参数%和_加个转义字符 在对应的mapper文件的sql里加上ESCAPE '/',这样就会把%和_当初普通字符来处理。 注意 一定要先加转义字符再加escape,不然无效。 ...

yao799879143的博客 5079

MyBatis Plus之like模糊查询中包含有特殊字符

mybatis like 特殊字符处理 % _ \

liyanggyang的博客 1673

mybatis模糊查询去除特殊符号%(百分号)和_(下划线)

在使用mybatis的模糊查询时,有俩个特殊符号需要注意: %:相当于任意多个字符; _:相当于任意的单个字符; 根据需求可以选择甄别,如果有要求排除特殊符号,那么写法如下: 在控制层接收到对应值得地方,加入replaceAll(): if(param != null){ map.put("param", param.replaceAll("%", "/%").rep...

gm371200587的博客 1万+

mybatis解决含有特殊字符的模糊查询

最近遇到一个问题,在页面查询时输入_出现的结果是所有信息,这与预期结果不一样,为什么会这样呢?原因如下: 在使用LIKE关键字进行模糊查询时,“%”、“”和“[]”单独出现时,会被认为是通配符。为了在字符数据类型的列中查询是否存在百分号(%)、下划线()或者方括号([])字符,就需要有一种方法告诉DBMS,将LIKE判式中的这些字符看作是实际值,而不是通配符。关键字ESCAPE允许确定一个转义字符...

qq_35253970的博客 1714

解决Mybatis模糊查询时%(百分号)和_(下划线)可以查到数据的问题

在网上试了很多方法,找了很多博主的文章可惜都没有用,然后偶然看到一篇文章 ,试了下,效果杠杠的。特此记录,方便以后使用。 首先展示项目路径 在common下新建一个util文件夹(其实放哪里无所谓)如下: 2.编写EscapUtil.java import org.apache.commons.lang.StringUtils; /** * @ClassName EscapeUtil * @Author {hjy} * @Date 2020/6/22 9:05 * @Description:.

qq_40788668的博客 3864

mybatis中sql查询_和%转义处理

综述 在使用LIKE关键字进行模糊查询时,“%”、“_”和“[]”单独出现时,会被认为是通配符。为了在字符数据类型的列中查询是否存在百分号 (%)、下划线(_)或者方括号([])字符,就需要有一种方法进行转义 思路 解决办法---使用ESCAPE定义转义符 在使用LIKE关键字进行模糊查询时,“%”、“_”和“[]”单独出现时,会被认为是通配符。为了在...

weixin_42353194的博客 2250

MyBatis Plus之like模糊查询中包含有特殊字符(_、\、%)

解决思路:自定义一个拦截器,当有模糊查询时,模糊查询的关键字中包含有上述特殊字符时,在该特殊字符前添加\进行转义处理。 问题提出 使用MyBatis中的模糊查询时,当查询关键字中包括有_、\、%时,查询关键字失效。 问题分析 当like中包含_时,查询仍为全部,即 like '%_%'查询出来的结果与like '%%'一致,并不能查询出实际字段中包含有_特殊字符的结果条目 like中包括%时...

御前提笔小书童 1万+
上一篇: springboot下MVC的MessageConverters和静态资源位置的配置
下一篇: CommandLineRunner、ApplicationRunner 接口
余生之君
博客等级 码龄10年 246粉丝 98原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值