MySQL Mybatis 动态批量替换 (模拟Oracle regexp_replace功能)

本文介绍如何在MySQL中实现类似Oracle的regexp_replace功能,由于MySQL8.0才引入该函数,作者选择了使用动态生成的replace函数序列来替代特殊字符。通过创建mychar表存储待替换字符,并循环执行replace操作,实现了需求。这种方法虽然简单但有效,对于新增特殊字符只需更新数据库即可。欢迎在评论区分享更优解决方案。
摘要由CSDN通过智能技术生成

在项目中遇到了一个地方,需要把原先用Oracle写的sql改成MySQL的,然而里面就设计到了标题提到的regexp_replace函数。


我们的需求就是,要替换掉数据库中数据中的一些特殊字符,来和后台处理过特殊字符的数据进行比对,判断是否相同。


举个例子,数据库里面有一个字段的值是AB.C-D&V,后台通过处理,得到一个字符串为ABCDV,这个时候我们比较的结果肯定是不等的,所以我们要对数据库的值也进行一个处理。


MySQL直到8.0才出了regexp_replace函数,稳妥起见我们还是不要先用这么新的版本,所以只能通过别的方式来解决。

我的想法很简单,既然没有这个函数,我们就一直用replace替换,动态的生成你需要替换掉的字符,循环的用replace函数替换掉它们。

首先我们新建一张表,取名为mychar。在这表里我们主要存储我们需要替换掉的特殊字符。

字段 描述
id 主键(意思一下)
old_char 需要替换掉的字符
new_char 替换成的字符
// 接下来我们就新建一个参数类,用来传入查询的参数
public class InChar {
	private List<My
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值