想象一下,你有一个包含大量字段的列:
ab
abc
abcd
...
我想使用单个查询将这些字段转换为以下内容:
a_b
ab_c
abc_d
...
也就是说,在最后一个字母之前插入一个下划线。
我可以一个接一个地做到这一点:
update test set name = 'a_b' where name ='ab';
update test set name = 'ab_c' where name ='abc';
update test set name = 'abc_d' where name ='abcd';
但是要更新大量字段,我认为必须有更好的方法来实现这一点。
答案 0 :(得分:3)
尝试此查询 -
UPDATE test SET name = INSERT(name, LENGTH(name), 0, '_');
答案 1 :(得分:1)
使用一些字符串操作函数,例如:
SET fieldname = CONCAT(LEFT(fieldname, LENGTH(fieldname)-1),"_",RIGHT(fieldname,1))
答案 2 :(得分:0)
您可以使用SUBSTRING和LENGTH函数:
UPDATE test
SET name = SUBSTRING(name, 0, LENGTH(name) - 1) + '_' + SUBSTRING(name, -1)