在MySQL中使用regexp选择和替换数据

时间:2018-11-01 13:37:16

标签: mysql regex regexp-replace

我是mySQL的新手。我有一个带有水果的表(超过1万行)。有水果名称的记录是:

apples
apples_2
apples_3
...

我正尝试用正则表达式替换苹果下的_2_3 ...(以消除_\d),以便能够对另一个有预算的列求和。认为以小组为单位将完成这项工作)

我正在使用以下代码:

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

我想念什么?

1 个答案:

答案 0 :(得分:1)

在您使用的特定版本中,这是my.rma.uni的错误。请升级(或降级。)

8.0.12的变更日志中包括:

  一个结果集行中的

REGEXP_REPLACE()结果可以结转到下一行,从而导致当前行中先前结果的累积。 (错误#27992118,错误#90803)

8.0.14已发布。