更新列的子字符串

时间:2013-09-02 10:27:41

标签: sql database sql-server-2008 tsql where

我在SQL Server 2008数据库中有一个名为Meter的表。该表有一个名为Name的列。

Name中的每个条目都有以下ZAA\的前缀。我想将此前缀更改为ZAA_,而不会影响列中其他文本。

2 个答案:

答案 0 :(得分:18)

UPDATE Meter
SET Name = 'ZAA_' + SUBSTRING(Name, 4, LEN(Name))
WHERE SUBSTRING(Name, 1, 4) = 'ZAA\'

编辑:

或者@Damien_The_Unbliever声明,使用索引:

UPDATE Meter
SET Name = 'ZAA_' + SUBSTRING(Name, 4, LEN(Name))
WHERE Name LIKE 'ZAA\%'

修改

根据您的评论,尝试使用此语句修复其他\

UPDATE Meter
SET Name = 'ZAA_' + SUBSTRING(Name, 5, LEN(Name))
WHERE Name LIKE 'ZAA_\%'

答案 1 :(得分:2)

MYSQL:

UPDATE Meter
SET Name = CONCAT('ZAA' ,'_', SUBSTRING(Name, 4, LENGTH(Name)))
WHERE Name LIKE 'ZAA\%'