我正在尝试从mysql中的字段所有出现替换特定文本。
我在代码字段中有以下数据。
代码
hello12
12hello
12hel12
1212hi1
我想要关注输出
您好
hel12
12hi1
我尝试过以下代码
UPDATE code_table
SET code = REPLACE(code, '12', '')
输出
您好
您好
HEL
HI1
我也试过这段代码
UPDATE code_table
SET code = REPLACE(code, '12', '')
where code regexp ('^12')
但我正在关注输出
您好
HEL
HI1
这是预期的,因为where子句只检查数据在字符串开头是否有 12 ,并从字符串中替换所有出现的
。有没有办法在替换中使用正则表达式?
答案 0 :(得分:2)
您可以选择带有12前缀的记录,然后只需用子字符串替换记录:
update code_table set code = substring(code, locate("12", code)+length("12")) where code regexp '^12';