暂无图片
该正则替换在oracle和mysql8中查询的结果不一致,请问在mysql8中应该如何修改表达式?
我来答
分享
暂无图片 匿名用户
该正则替换在oracle和mysql8中查询的结果不一致,请问在mysql8中应该如何修改表达式?
SELECT regexp_replace('aaabbxaee','(\w)\1{1,}','\1') from dual;

image.png
image.png

此正则替换的目的是,对于一个字符串,相邻字符一致的只保留一个。
同样都是使用的正则替换函数,传入的参数也完全一致,但两个数据库里输出结果却不一样。
请问在mysql8中应该如何修改传入参数才能达到和oracle中一样的效果?

我来答
添加附件
收藏
分享
问题补充
2条回答
默认
最新
严少安
暂无图片

需要改写一下:

mysql> SELECT regexp_replace('aaabbxaee','(.)\\1+',"\\1") from dual; +---------------------------------------------+ | regexp_replace('aaabbxaee','(.)\\1+',"\\1") | +---------------------------------------------+ | abxae | +---------------------------------------------+ 1 row in set (0.00 sec)
暂无图片 评论
暂无图片 有用 0
DarkAthena
SELECT regexp_replace('aaabbxaee','(\\w)\\1{1,}','\\1');

mysql正则里的"\"都要转义

暂无图片 评论
暂无图片 有用 0
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏