MySQL/MariaDB中REGEXP_REPLACE替换单引号间内容求助
MySQL/MariaDB 替换单引号内字符串的正确写法
你可以用以下正则表达式搭配REGEXP_REPLACE实现需求,精准匹配单引号之间的任意内容并替换:
先验证替换效果(查询语句)
SELECT message, REGEXP_REPLACE(message, '''[^'']+''', '%PARAM%') AS modified_message FROM your_table;
实际更新数据语句
UPDATE your_table SET message = REGEXP_REPLACE(message, '''[^'']+''', '%PARAM%');
正则规则说明
''':SQL里需要用两个单引号转义表示一个实际单引号,这里匹配开头的单引号[^']+:匹配除单引号外的任意一个或多个字符(包含空格、字母、数字等,能完美覆盖你示例里带空格的字符串)''':匹配结尾的单引号
如果之前尝试失败,大概率是用了贪婪匹配的'.+'模式——这种模式会从第一个单引号一直匹配到最后一个单引号(若文本里有多对单引号会出问题),而[^']+是精准匹配单引号对之间的内容,更安全可靠。
内容的提问来源于stack exchange,提问作者user21641118
相关产品推荐
相关产品推荐

