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

Beitrag lesen

Hello,

passe ein CMS (PHP und MySQL) an, leider ist in diesem CMS für "Name" nur eine Spalte (für Vor- und Zunamen) in der Datenbank vorgesehen, der Name taucht an 1000 Stellen auf, und ich habe keine Lust, eine neue Spalte einzuführen. Jetzt das Problem: die Namen sollen nach dem Nachnamen geordnet werden (alphabetisch), der dummerweise an 2.Stelle steht.

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

es gibt

Substring(string,pos,len)
  Right(String,len)
  InStr(string,substr)
  Substring_Index(string,find,number)   <-- das arbeitet auch von hinten!

Daraus solltest Du das eigentlich basteln können.

Bedenke, dass MySQL ( auch bei InStr() ) mit 1 anfängt zu zäheln und 0 bedeutet, dass das Zeichen nicht im String enthalten ist.

Es wird dich aber enorm viel Performance kosten.
Besser wäre es also, die Spalte Nachname einzuführen und dann einmal ein Reparaturtool dafür zu erstellen.

Nachname = substring_index(trim(string),' ',-1)

sollte also Deine Lösung sein.

Harzliche Grüße aus http://www.annerschbarrich.de

Tom

--
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau