Seite 1 von 1
1 Buchstabe gross in MYSQL Tabelle
Verfasst: Mo 26. Jul 2010, 06:03
von manne35
Hallo,
Ich habe eine Spalte in der viele Inhalte total grossgeschrieben sind,
wenn ich nur den ersten Buchstaben gross schreiben will in einer Spalte einer Mysql Tabelle,
versuche ich dies so, aber dies führt zur Verdoppelung des ersten Buchstabens.
Code: Alles auswählen
UPDATE `tabelle_xy` SET name = CONCAT(UPPER(LEFT(name, 1)), RIGHT(name, LENGTH(name) - 1))
Code: Alles auswählen
Vorher ---> Nachher
GEORGI GEORGI
PAUL PAUL
Südstadt SSüdstadt
Es sollten aber überall nur die ersten Buchstaben gross sein...?
Weiss jemand Rat ?
gruss manne
Re: 1 Buchstabe gross in MYSQL Tabelle
Verfasst: Mo 26. Jul 2010, 06:58
von Doc Olson
Ich vermute mal, das Problem liegt beim Umlaut. Das ist ein Multibyte-Char und zählt 2 Zeichen. Somit ist LENGTH(name) - 1 genau ein Zeichen länger als erwartet. Versuch's mal mit CHAR_LENGTH, das zählt auch Multibyte-Chars nur als ein Zeichen.
Re: 1 Buchstabe gross in MYSQL Tabelle
Verfasst: Do 29. Jul 2010, 17:33
von manne35
danke, klappt nicht,
ich will quasi , dass einfach alle Einträge einer Spalte nur den ersten Buchstaben gross haben,
also ganz normal großgeschrieben werden.
Naja, muss ichmal weitersuchen.
grussmanne
Re: 1 Buchstabe gross in MYSQL Tabelle
Verfasst: Do 29. Jul 2010, 17:52
von Xantiva
Wenn nicht direkt per SQL, bleibt noch der Weg ein kleines PHP Skript zu schreiben, was die Arbeit übernimmt. Nicht so elegant, aber bevor Du nichts findest ...
Re: 1 Buchstabe gross in MYSQL Tabelle
Verfasst: Do 29. Jul 2010, 18:19
von manne35
1. SQL Befehl ist einfach
Alles kleinschreiben:
UPDATE tabellenname SET name = LOWER(name)#
So werden alle klein, jetzt muss nur noch der 1 Buchstaben wieder gross,der Schlingel...
m.
Re: 1 Buchstabe gross in MYSQL Tabelle
Verfasst: Do 29. Jul 2010, 19:15
von manne35
Oki hier kommts,
es lag am umlaut und zuerst alles kleinmachen hat gefelt...
Code: Alles auswählen
UPDATE tabellenname SET name = LOWER(name); UPDATE `tabellenname` SET name = CONCAT(UPPER(LEFT(name, 1)), RIGHT(name, CHAR_LENGTH(name) - 1))
Dank und grussmanne
Re: 1 Buchstabe gross in MYSQL Tabelle
Verfasst: Do 5. Aug 2010, 09:38
von yogi
Hi,
anstatt zuerst alles klein zu machen und die Zeichenlänge zu bestimmen wird auch folgendes funktionierne:
Nimm das erste Zeichen mache es groß und verbinde es mit dem kleinengemachten restlichen String:
Code: Alles auswählen
UPDATE tabelle SET name = CONCAT(UPPER(substr(name,1,1)), LOWER(substr(name,2)))
Hierbei ist es von vorteil das die Funktion substr "Multibyte Save" ist, was im ersten ansatz mit "LENGHT" zur Verdopplung des "S" führt.
Statt SUBSTR(name,1,1) kann natürlich auch LEFT(name,1) genutzt werden.