次の問題があります。titles
次の構造で呼び出されるテーブルがあります。
id int(10),
name varchar(100),
その後、 という新しい列を追加しましたmodified_name
。name
小文字であり、すべてのスペースが-
. この列を追加したため、その列の各レコードに適切な変更された名前の値を取得する必要がありました。これを行うために、データベースから値をロードして処理する PHP スクリプトを作成しましたが、これは非常に非効率的です。テーブルUPDATE
内の各レコードに正しい値を追加する単一のクエリを作成することは可能ですか? titles
ストアド プロシージャと while ループを使用してこれを行う方法を考えることができますが、より効率的な方法が可能かどうかを知りたいです。次のようなものを達成する方法はあります。
UPDATE `titles`
SET
`modified_name` = LOWER(REPLACE(SELECT `name` FROM `titles` WHERE id = PRESENT_VALUE), ' ', '-');
目標modified_title
は、テーブル内のすべてのレコードの列を、次のようにそのレコードの列titles
から得られる一意の値に設定することです。name
# Before modification update query
name = "Hello Goodbye"
modified_name = ""
# After modification update
name = "Hello Goodbye"
modified_name = "hello-goodbye"
ご協力いただきありがとうございます。これを行う最善の方法についてアドバイスをいただければ幸いです。