如何在mysql的列开头替换特定的文本?

时间:2016-05-03 06:00:10

标签: mysql regex replace sql-update

我正在尝试从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 ,并从字符串中替换所有出现的

有没有办法在替换中使用正则表达式

1 个答案:

答案 0 :(得分:2)

您可以选择带有12前缀的记录,然后只需用子字符串替换记录: update code_table set code = substring(code, locate("12", code)+length("12")) where code regexp '^12';