2016-12-09 2 views
2

Ich habe eine Frage über UPPER() Funktion mit MySQL. Ich habe eine Probe, die in der gleichen Spalte wie folgt aussehen:Stellen Sie UPPER kurz vor einem Leerzeichen mit MySQL

Nachname Vorname

Und ich möchte diese Spalte, um zu handhaben zu bekommen:

Nachname Vorname

Wenn ich will: LASTNAME FIRSTNAME kann ich das tun:

UPDATE llx_societe SET `nom` = UPPER(`nom`); 

==> Meine Frage ist: Wie kann ich nur Upper den Nachnamen setzen?

Vielen Dank!

+0

ist der Nachname und Vorname in separaten Spalten? –

+0

Nein, die gleiche Spalte. Einfach durch Leerzeichen trennen – Deadpool

Antwort

4

Verwendung substring_index:

update llx_societe set nom = concat(upper(substring_index(nom, ' ', 1)), ' ', substring_index(nom, ' ', -1)); 

SQLFiddle hier Demo.

+0

Und 'Name' bei Tabellenname entspricht? – Deadpool

+0

@Valentin Nur eine Demo-SQL, aktualisiert, dass. – Blank

+0

Ja, ich habe es versucht und es funktioniert so vielen Dank! Ich kannte diese Art von Syntax und die Demo-Website nicht;) – Deadpool

-2

EDIT

update llx_societe 
set nom = concat(UPPER(left(nom,locate(' ',nom)-1)), 
    ' ',substring(nom,locate(' ',nom)+1,length(nom))) 
+0

Es ist die gleiche Spalte. Die Spalte heißt 'nom' und sieht aus wie Nachname vorname ^^ So funktioniert das nicht. Sonst habe ich diese Lösung schon gefunden. – Deadpool

+0

Ok. Sehen Sie meine Bearbeitung – Madhivanan

+3

Bitte verwenden Sie den [Bearbeiten] Link erklären, wie dieser Code funktioniert und geben Sie nicht nur den Code, da eine Erklärung ist eher für zukünftige Leser zu helfen. –

0

Mein Skript:

UPDATE llx_societe SET nom=CONCAT(UPPER(SUBSTR(u.nom, 1, INSTR(u.nom, ' ')-1)), SUBSTR(u.nom, INSTR(u.nom, ' ')+1) 
Verwandte Themen