web-dev-qa-db-ja.com

列の部分文字列を更新する

Meterという名前のSQL Server 2008データベース内にテーブルがあります。このテーブルには、Nameという列があります。

Name内の各エントリには、次の接頭辞ZAA\があります。列内の残りのテキストに影響を与えずに、このプレフィックスをZAA_に変更したいと思います。

16
user2547340
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\%'

[〜#〜] edit [〜#〜]

コメントから、このステートメントを試して、追加の\

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

MYSQL:

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