Aktualisieren Sie alle Werte einer Spalte in Kleinbuchstaben

100

Nehmen wir an, ich habe so etwas

uid    tag
1      HeLLo
2      heLLO
3      HELLO
4      hello

Wie kann ich alle Werte in der Spalte "Tag" aktualisieren auf:

uid    tag
1      hello 
2      hello 
3      hello 
4      hello 

mit MySQL?

Adam Ramadhan
quelle

Antworten:

243

Siehe http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_lower

UPDATE table_name SET tag = LOWER(tag)
Rippo
quelle
3
Beachten Sie, dass dies nicht richtig funktioniert, wenn Ihre Datenbank die Übereinstimmung ohne Berücksichtigung der Groß- und Kleinschreibung verwendet.
EmeraldD.
Wie funktioniert das mit E-Mail-Adressen? [email protected] Wird sich das @ ändern?
Björn C
2
UPDATE table_name SET tag = BINARY LOWER(tag)für Matching ohne Berücksichtigung der Groß- und Kleinschreibung.
Enyby
2
@ BjörnC - oben / unten ändert nur Buchstaben; Alle anderen Zeichen bleiben unverändert.
ToolmakerSteve
@Rippo Ich erhalte diesen Fehler, wenn ich diese Abfrage versucheHINT: No function matches the given name and argument types. You might need to add explicit type casts.
Luna Lovegood
68

NIEDRIGER()

update table set tag = LOWER(tag)
Shakti Singh
quelle
Ich erhalte diesen Fehler, wenn ich diese Abfrage versuche. HINWEIS: Keine Funktion entspricht dem angegebenen Namen und den angegebenen Argumenttypen. Möglicherweise müssen Sie explizite Typumwandlungen hinzufügen.
Luna Lovegood
4

Version für Matching ohne Berücksichtigung der Groß- und Kleinschreibung und mit einer "WHERE" -Klausel, wenn Sie nicht die gesamte Spalte aktualisieren möchten:

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

Die COLLATE-Zeile funktioniert, wenn in Ihrer Datenbank die Übereinstimmung zwischen Groß- und Kleinschreibung nicht berücksichtigt wird, wie in meiner.

Susie
quelle
Ich erhalte diesen Fehler, wenn ich diese Abfrage versuche. HINWEIS: Keine Funktion entspricht dem angegebenen Namen und den angegebenen Argumenttypen. Möglicherweise müssen Sie explizite Typumwandlungen hinzufügen.
Luna Lovegood
3

Versuche dies:

update `table` set `column_name` = LOWER(column_name without quotation)
Anjani Barnwal
quelle