在mysql中使用regexp选择并替换数据

ac1kyiln  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(342)

我是mysql的新手,我有一张有水果的table(超过10k行)。水果名称的记录如下:

apples
apples_2
apples_3
...

我正在试着替换 _2 或者 _3 ... 在苹果下面(为了消除 _\d )为了能和regex的另一列有预算的列求和(本以为groupbyfruit会做这项工作)
我正在使用此代码:

SELECT REGEXP_replace(t.fruit,'_\\d','') AS `fruitName` from Select(.....) t;

我试过了 \d 以及 \\d 但这是不正确的,问题是当它找到相同的数据时,它的答案和下一个一样。

apples_2 -- applesapples 
apples_2 -- applesapplesapples 
apples_2 -- applesapplesapplesapples 
apples_2 -- applesapplesapplesapplesapples

我错过了什么?

toe95027

toe950271#

那是一只虫子 REGEXP_REPLACE() 在您使用的特定版本中。请升级(或降级)
8.0.12的changelog除其他外还说:
regexp\u replace()来自一个结果集行的结果可能会结转到下一行,从而导致当前行中以前的结果的累积(臭虫27992118,臭虫90803)
8.0.14已发布。

相关问题