【发布时间】:2021-10-31 14:21:48
【问题描述】:
我在留言栏有帖子内容。
我想用 X 搜索和替换模式,但只有第一次模式出现在记录中,因为它可能出现多次。
下面的查询显然会用 X 替换所有模式实例
UPDATE xf_post SET message = REGEXP_REPLACE (message, 'pattern', 'X');
在 oracle db 上使用此命令非常简单。
UPDATE xf_post SET message = REGEXP_REPLACE (message , 'pattern', 'X', 1, 1);
但是服务器有 mariadb ????我不知道该怎么做。
【问题讨论】:
-
在 MariaDB 中没有额外的参数可以设置替换的数量,所有出现的地方都会被替换。当替换模式包含对找到的模式组的引用时,没有简单的方法可以模拟这一点。如果替换是文字,则使用 REGEXP_INSTR() 查找模式,定义其位置和长度,然后将其剥离并使用两个 SUBSTRING() 替换。
标签: mysql sql replace mariadb regexp-replace