暂无图片
该正则替换在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
打赏 0
DarkAthena
SELECT regexp_replace('aaabbxaee','(\\w)\\1{1,}','\\1');
复制

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

暂无图片 评论
暂无图片 有用 0
打赏 0
回答交流
Markdown


请输入正文
提交
相关推荐
执行oradim shutdown 出现ora-01017 用户名密码不正确的问题
回答 2
已采纳
oradim关闭服务和例程:SHUTDOWNSIDsid[USRPWD口令][SHUTTYPEsrvc|inst|srvc,inst][SHUTMODEa|i|n]你这个报错就是密码不正确嘛,需要跟上
mysql怎么把查询到的数据直接插入到新表中?
回答 1
提示很明显了啊。表结构也要在插入时新建就用createtablenewtableasselectfromoldtable;
Oracle19.17的,为什么建3个pdb以后就无法再建造,修改max_pdbs参数也没有用?
回答 3
https://blogs.oracle.com/database/post/oracledatabase19cupto3pdbspercdbwithoutlicensingmultitenant
mysql定义的自增列,迁移到dm以后,是不是这个使用上应用都需要改动?
回答 3
mysql的自增列应该是无业务含义的。仅仅为了存储。所以迁移到其他数据库,去掉就行。如果你带来业务含义进去,那么只能说用错了。
Oracle如何导出.db的文件?
回答 2
已采纳
rmancopydatafile备份数据文件
MySQL存储过程开发用什么工具?
回答 2
路过学习了
ogg问题-OGG-01963
回答 1
ogg命令行下执行一下dblogin登录一下数据库试试。怀疑你配置没有配对。
TDSQL和MySQL在navicat的连接是一样的吗?
回答 1
已采纳
“TDSQL"目前是一个系列,有好几个数据库名称里都包含"TDSQL”你看你用的是基于哪种数据库的,就可以使用对应数据库的工具来连接
,truncate table时,从库报错Error 'Got error 168 from storage engine' on query.
回答 1
检查下看看是不是磁盘空间不足了
Hash索引有什么缺点?
回答 1
已采纳
Hash索引由于其结构的特殊性,其检索效率非常高,索引的检索可以一次定位,不像BTree索引需要从根节点到枝节点,最后才能访问页节点这样需要多次I/O访问,所以Hash索引的查询效率要远高于BTree