2014-09-30 52 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:]]+' 
相關問題