lulu: SQL Abfrage: alphabetische Ordnung nach 2.Wort im String

Beitrag lesen

Huhu Anuschaka

Also: Gibt es ein SQL Abfrage-Möglichkeit, eine alphabetische Anordnung der Datensätze vorzunehmen, geordnet nach dem letzten Wort eines Strings?

Eine einfache Variante wäre

SELECT SUBSTRING( name, Locate( ' ', name ) ) AS Nachname
FROM DeineTabelle
ORDER BY Nachname

das funktioniert aber nur bei Namen mit genau einem Vornamen.
Und wenn auch genau ein Leerzeichen verwandt wurde.

Guck mal da, welche String-Funktionen Dir noch zur Verfügung stehen.

http://dev.mysql.com/doc/mysql/en/String_functions.html

zur Not musst den String zweimal per REVERSE umdrehen, falls es keine
Funktion gibt welche die letzte Position von ' ' zurückgibt.

Allerdings würde ich Dir raten doch eine zweite Spalte einzuführen.
Alles andere ist nur "Rumgemurxe" und der nächste der es bearbeiten muss freut sich auch.

Falls Du nicht gleich alle Templates etc. überarbeiten willst reicht es ja vielleicht die SQL-Querys anzupassen also z.B.

SELECT concat_ws(' ',SpalteVorname, SpalteNachname) as Name

Viele Grüße

lulu

--
bythewaythewebsuxgoofflineandenjoytheday