2014-09-30 45 views
0

我目前有一个列(control_reference)设置为varchar(120)与数据看起来像这样15591_8571。该列中的数据更改第一个数字,但第二个数字始终相同。我想补充一点,所以varchar最终会看起来像这样。请记住我有数百个这样的东西,所以我想找到一种方法来改变它们。通过添加到字符串的中间来更新mysql中的列?

在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';但我有很多他们做的。

回答

0

使用REPLACEcommand创建函数或存储过程并使用它。的

使用简单更换sysntax

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

结果:

15591_I18n_8571 
1

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

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

要更新限制与该图案匹配的行添加如下内容:

WHERE control_reference REGEXP '[[:digit:]]+_[[:digit:]]+' 
相关问题