web-dev-qa-db-ja.com

ワンショットでクエリを使用してSQL Serverの特定の列のフィールド値を更新する方法は?

CMSにデータフォームXLSをインポートしました。しかし、最後に、テーブルの列の1つで、データの最後に拡張子のない間違ったデータがあることに気付きました。そこで、特定のIDに基づいて複数の行の列データを変更したいですか?単一のSQLクエリを使用してそれを行う方法は?

これらのデータの最後に「.jpg」を追加したいだけです。

画像 AspxCommerce Error

19
Milson
UPDATE a
SET a.Imagepath = a.ImagePath + '.jpg'
FROM aspx_itemimages a
WHERE a.ItemId = yourid
18
Andrey Gordeev

これを試してください-

UPDATE aspx_itemimages
SET ImagePath = ImagePath + '.jpg'
--WHERE itemid = 755
5
Devart

試してください:

UPDATE ImagePath SET ImagePath = ImagePath + '.jpg'
4
Shree

スクリーンショットによると、一部のエントリは実際には.jpgで終わります。 .jpgがない場合にのみ追加する場合は、NOT LIKE述語を使用できます。

UPDATE  aspx_itemimages
SET     ImagePath = ImagePath + '.jpg'
WHERE   ImagePath NOT LIKE '%.jpg'
;

また、クエリを誤って再度実行した場合に、拡張機能を複数回追加することを防ぎます。

3
Andriy M

上記の答えは正しいですが、2つの文字列を追加すると0が返されるため、2つの文字列を連結する必要があります。以下に例を示します。

UPDATE a
SET a.Imagepath = concat(ImagePath , '.jpg')
FROM aspx_itemimages a
WHERE a.ItemId = yourid
0
Raj