列のすべての値を小文字に更新します


100

私がこのようなものを持っているとしましょう

uid    tag
1      HeLLo
2      heLLO
3      HELLO
4      hello

「タグ」列のすべての値を更新するにはどうすればよいですか。

uid    tag
1      hello 
2      hello 
3      hello 
4      hello 

MySQLを使用していますか?

回答:


243

http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_lowerを参照してください

UPDATE table_name SET tag = LOWER(tag)

3
データベースが大文字と小文字を区別しないマッチングを使用している場合、これは正しく機能しないことに注意してください。
EmeraldD。

これはメールアドレスでどのように機能しますか?Name@domain.com @は変更されますか?
ビョルンC

2
UPDATE table_name SET tag = BINARY LOWER(tag)大文字と小文字を区別しないマッチング。
Enyby

2
@BjörnC-大文字/小文字のみが文字を変更します。他のすべての文字は変更されません。
ToolmakerSteve

@Rippoこのクエリを実行すると、このエラーが発生しますHINT: No function matches the given name and argument types. You might need to add explicit type casts.
Luna Lovegood

68

LOWER()

update table set tag = LOWER(tag)

このクエリを実行すると、このエラーが発生しますヒント:指定された名前と引数の型に一致する関数はありません。明示的な型キャストを追加する必要がある場合があります。
Luna Lovegood

4

列全体を更新しない場合は、大文字と小文字を区別しないマッチングのバージョンで、「WHERE」句を含めます。

UPDATE table 
SET tag = LOWER(tag)
WHERE LOWER(tag) != tag
COLLATE Latin1_General_CS_AS

COLLATE行は、私のようにデータベースで大文字と小文字を区別しないマッチングを使用する場合に機能します。


このクエリを実行すると、このエラーが発生しますヒント:指定された名前と引数の型に一致する関数はありません。明示的な型キャストを追加する必要がある場合があります。
Luna Lovegood

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.