4

「city_name」という名前の列を持つ「city」という名前のテーブルがあり、約 200 のレコードがあります。

slugs という名前の別の列を作成しました。ここで、同じ行の「city_name」からすべてのレコードをコピーし、スペースをダッシュ​​と小文字に置き換えます。

phpmyadmin を介してこれを達成するにはどうすればよいですか。

ありがとう

4

2 に答える 2

14

次のクエリを使用してこれを実行できるはずです。

UPDATE city SET slugs=LOWER(REPLACE(city_name, " ", "-"))

これを分解するREPLACEと、既存の列で " " のすべてのインスタンスを "-" に交換し、その結果を(データを小文字に変換するために) 関数city_nameに渡してから、この値でフィールドを設定しています。 .LOWERslugs

データがどの程度「クリーン」であるかによってはcity_name、REPLACE をそのまま適用する前に、データを TRIM (フィールドの先頭または末尾のスペースを削除するため) にすることもできます。

UPDATE city SET slugs=LOWER(REPLACE(TRIM(city_name), " ", "-"))

ちなみに、(My)SQL をあまり使用したことがない場合は、文字列関数のマニュアル ページを読むことをお勧めします。これに費やした時間は、将来的には十分に報われます。

于 2013-08-25T09:55:43.727 に答える
0

ここにSQLFiddleがあります

関数LOWER(str)およびREPLACE(str,from_str,to_str) の MYSql ドキュメント

UPDATE city SET slugs = LOWER(REPLACE(city_name," ", "-"));
于 2013-08-25T09:57:07.050 に答える