请提供以下sql:
我希望将值类似“优先级:1”替换为“优先级:2”。但是,要查找的文本可以是“Priority:1”OR“优先级:2”OR“优先级:3”等。我想使用regexp沿着concat来查找与该模式匹配的任何值
字段中完整数据的示例:
<span class='badge badge-info'>Priority: 1</span><br>• Lead submitted: <br>• Existing customer: <br>• Car of interest:
在这种情况下,我想将“优先事项:1”替换为“优先级:2英寸
目前的SQL ...
UPDATE
response
SET
notes = REPLACE(
notes,
CONCAT('Priority: ', REGEXP '\d'),
'Priority: 3'
)
WHERE actionid = '2198602'
1条答案
按热度按时间wmomyfyw1#
您在上面的注解中提到您使用的是MySQL 5.x,因此REGEXP_REPLACE()函数不可用。
这意味着您有几种选择:
替换固定字符串,一次替换一个。
然后对“优先级:2“和另一个更新的任何其他值,你需要改变。
以嵌套方式替换固定字符串。
一个REPLACE()的结果是一个字符串,您可以将其用作另一个REPLACE()的第一个参数。将针对每个输入模式检查该字符串,并进行替换。
将值提取到客户端应用程序中
选择一个值,获取它,然后你可以使用正则表达式来进行字符串替换。实际上每种语言都以某种方式支持正则表达式。
升级到MySQL 8.0
显而易见的选项。然后可以使用REGEXP_REPLACE()。
请注意,MySQL 5.7将于2023年10月停产,距离我们撰写本文的时间不到一年。您应该已经在考虑升级到8.0。