web-dev-qa-db-ja.com

列のスペースをアンダースコアに置き換えるMySQLクエリ

MySQLデータベーステーブル '写真'に列 'ファイル名'があります。 filename列の値のスペースをアンダースコアに置き換える必要があります。単一/複数のクエリで可能ですか?もしそうなら?

20

REPLACE 関数を使用できます。

REPLACE(str,from_str,to_str)

文字列strを返します。文字列_from_str_はすべて文字列_to_str_に置き換えられます。
REPLACE()は、_from_str_を検索するときに大文字と小文字を区別する一致を実行します。

したがって、テーブルのすべての行で、文字のすべての出現箇所を別の出現箇所で置き換えるには、次のようにします。

_update photos set filename = replace(filename, ' ', '_');
_

つまり、列filenameで ''を検索し、代わりに '_'を使用します。結果をfilenameに戻します。

50
Pascal MARTIN
update photos set filename = replace(filename,' ', '_');
6
Don