2

次の問題があります。titles次の構造で呼び出されるテーブルがあります。

id int(10),
name varchar(100),

その後、 という新しい列を追加しましたmodified_namename小文字であり、すべてのスペースが-. この列を追加したため、その列の各レコードに適切な変更された名前の値を取得する必要がありました。これを行うために、データベースから値をロードして処理する 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"

ご協力いただきありがとうございます。これを行う最善の方法についてアドバイスをいただければ幸いです。

4

1 に答える 1

1
UPDATE `titles` SET `modified_name` = LOWER(REPLACE(`name`, ' ', '-'))
于 2012-11-09T19:40:15.877 に答える