我目前将列(control_reference)设置为varchar(120)
,其数据类似于此15591_8571
。此列中的数据更改第一个数字,但第二个数字始终相同。我想在这个中间添加一些内容,以便varchar
最终看起来像这样。请记住,我有数百个,所以我想找到一种方法来改变它们。
control_reference中的当前值
control_reference中的新值
我知道我可以使用简单的UPDATE 'database.table' SET 'control_reference'='15591_I18n_8571' WHERE'id'='some_number';
,但我有很多事要做。
答案 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