通过添加到字符串中间来更新mysql中的列?

时间:2014-09-30 13:37:57

标签: mysql sql-update

我目前将列(control_reference)设置为varchar(120),其数据类似于此15591_8571。此列中的数据更改第一个数字,但第二个数字始终相同。我想在这个中间添加一些内容,以便varchar最终看起来像这样。请记住,我有数百个,所以我想找到一种方法来改变它们。

control_reference中的当前值

  • 15591_8571
  • 16772_8571
  • 20541_8571

control_reference中的新值

  • 15591_I18n_8571
  • 16772_I18n_8571
  • 20541_I18n_8571

我知道我可以使用简单的UPDATE 'database.table' SET 'control_reference'='15591_I18n_8571' WHERE'id'='some_number';,但我有很多事要做。

2 个答案:

答案 0 :(得分:1)

如果需要更新表中的所有行,请尝试:

UPDATE database.table SET control_reference=REPLACE(control_reference, '_', '_I18n_')

要将更新限制为与该模式匹配的行,请添加以下内容:

WHERE control_reference REGEXP '[[:digit:]]+_[[:digit:]]+'

答案 1 :(得分:0)

使用REPLACE command创建函数或存储过程并使用它。

REPLACE sysntax的简单用法

SELECT REPLACE('15591_8571', '_', '_I18n_') AS NewValue;

结果:

15591_I18n_8571