0

テーブルが 1 つあり、特定のフィールドから特定のテキストを削除する必要があります。このフィールドには、画像の完全な URL が含まれています。URL を削除して、画像ファイル名だけを保持する必要があります。

現在の日付: フィールド名: www.example.com/photo.jpg 私がやりたいことは、このフィールドのすべてのエントリから www.example.com/ を削除することです。

検索と置換機能の使い方は知っていますが、データの一部をそのまま残す方法がわかりません。

これは私が使用したものですが、私が望むように動作させるために変更することはできません:

UPDATE table SET oc_upload1 = REPLACE(oc_upload1,'newtext') WHERE oc_upload1 LIKE "oldtext"

これは可能ですか?もしそうなら、どのように?ありがとうございました!

4

1 に答える 1

3

これは次のことを行う必要があります。

UPDATE table
SET image = REPLACE(image, 'www.example.com/','')

ただし、画像ファイル名の一部として「www.example.com/」が含まれている可能性があるため、安全性を高め、最初に出現した www.example.com のみを置き換えます。

UPDATE table
SET image = SUBSTRING(image, LENGTH('www.example.com/') + 1)
WHERE image LIKE 'www.example.com/%'

しかし、本当にファイルへのパスではなくファイル名だけが必要な場合は、次を使用することもできます。

UPDATE table
SET image = SUBSTRING_INDEX(image,'/',-1)

上記のステートメントは、「www.example.com/images/01/02/daisy.jpg」を「images/01/02/daisy.jpg」ではなく「daisy.jpg」に変更することに注意してください。また、画像に「/」を含まない行は変更されません。

于 2012-07-11T20:12:40.673 に答える