select 并在 mySql 中使用正则表达式替换数据
select and replace data using regexp in mySql
我是 mySQL.I 的新手,有一个 table 水果(超过 10k 行)。有水果名称的记录是:
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
我想念什么?
这是您使用的特定版本中 REGEXP_REPLACE()
的错误。请升级(或降级)
8.0.12 的变更日志说,除其他外:
REGEXP_REPLACE() results from one result set row could carry forward to the next row, resulting in accumulation of previous results in the current row. (Bug #27992118, Bug #90803)
8.0.14 已发布。
我是 mySQL.I 的新手,有一个 table 水果(超过 10k 行)。有水果名称的记录是:
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
我想念什么?
这是您使用的特定版本中 REGEXP_REPLACE()
的错误。请升级(或降级)
8.0.12 的变更日志说,除其他外:
REGEXP_REPLACE() results from one result set row could carry forward to the next row, resulting in accumulation of previous results in the current row. (Bug #27992118, Bug #90803)
8.0.14 已发布。