2012-03-01 98 views
0

替換特定位置的字符試想一下,你有這樣的一羣字段的列:更新多行MySQL中

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'; 

但作爲一個高一些領域更新的,我想必須有一個更好的方式來做到這一點。

回答

3

嘗試此查詢 -

UPDATE test SET name = INSERT(name, LENGTH(name), 0, '_'); 
1

使用一些字符串處理函數,是這樣的:

SET fieldname = CONCAT(LEFT(fieldname, LENGTH(fieldname)-1),"_",RIGHT(fieldname,1)) 
0

你可以使用的子字符串並將LENGTH功能:

UPDATE test 
    SET name = SUBSTRING(name, 0, LENGTH(name) - 1) + '_' + SUBSTRING(name, -1)