Nach 2 Spalten sortieren

dwex

Erfahrenes Mitglied
Hallo Leute,

ich habe wieder mal ein Problem.

Ich möchte eine DB nach 2 Spalten sortieren.
Also ich habe ein Spalte mit Nachnamen und eine mit Vornamen.
Jetzt möchte ich erst nach den Nachnamen sortieren und dann nach den Vornamen so das es nach dem Alphabet wieder richtig ist.

Geht das mit einer Abfrage und wenn ja wie?

Vielen Dank im Voraus für euere Hilfe!
 
Hallo,

das war nicht meine Frage - ich möchte in einer Query erst nach dem Nachnamen sortieren.

z.B.

Einname
Meier
Zweiname

Wenn jetzt z.b. Meier 5x vorkommt dann sieht die Sortierung als so aus:


Einname
Meier
Meier
Meier
Meier
Meier
Zweiname

So nun habe ich einen Anton Meier, einen Christian Meier, einen Marcus Meier, einen Karl Meier und einen Xaver Meier
Die stehen in der db in folgender Reihenfolge:
Christian
Karl
Anton
Xaver
Marcus

Also wäre nach der Sortierung der Nachnamen folgendes Ergebnis zu erwarten:

Einname
Meier Christian
Meier Karl
Meier Anton
Meier Xaver
Meier Marcus
Zweiname

Jetzt möchte ich aber folgende Ausgabe haben:

Einname
Meier Anton
Meier Christian
Meier Karl
Meier Marcus
Meier Xaver
Zweiname

Ich habe folgende Query probiert leider funkt es nicht:
Code:
SELECT * 
FROM `user` 
ORDER BY `realname` ASC AND 
BY `realfirstname` ASC 
LIMIT 0 , 500
 
Hallo!

Was hälst Du hiervon?
Code:
SELECT CONCAT(realname,' ',realfirstname) AS fullname
FROM `user`
ORDER BY fullname
LIMIT 0,500
ASC brauchst Du nicht unbedingt mit angeben, da es normalerweise schon per default eingestellt ist.

Gruss Dr Dau
 
ManicMarble hat gesagt.:
Also mit Verlaub: Das sind ja wohl simpelste SQL-Basics...
Also mit Verlaub (zurück) - hätte ich es gewusst dann hätte ich nicht gefragt - ich habe eben noch nicht meine Basics zusammen. Jetzt habe ich wieder ein Stück Basic mehr ;)

Ich werde es aber so wie Dr Dau geschrieben hat machen (VIELEN DANK) da ich den Vor- und Nachnamen sowieso in einer Variable brauche.
 
Hallo dwex,
mit Verlaub: War kein Angriff gegen Dich. Hatte mich bloß gewundert, dass so viele komplizierte Lösungsvorschläge kommen und die Fragestellung so ausführlich präzisiert wurde, wo doch eine einfache Lösung so nahe liegt und ein kurzer Blick in die MySQL-Doku (z.B. http://dev.mysql.com/doc/refman/5.0/en/select.html) Dir diese langen Ausführungen erspart hätte. ;).

Wenn Du sowieso Nach- und Vorname mit CONCAT() verketten willst, dann kannst Du natürlich nach dem Alias sortieren, kannst aber, falls Du keinen Alias vergeben willst oder noch mehr Sortierkriterien hast, trotzdem auch beim ORDER BY mehrere Felder angeben.

Viele Grüße,
 
Bei meinem Beispiel sei noch angemerkt dass es grundsätzlich den Vornamen UND Nachnemen in der Tabelle geben muss..... denn:
MySQL.com hat gesagt.:
CONCAT(zeichenkette1,zeichenkette2,...)
Gibt die Zeichenkette zurück, die durch die Verkettung der Argumente entsteht. Gibt NULL zurück, wenn irgend ein Argument NULL ist. Kann mehr als 2 Argumente haben. Ein numerisches Argument wird in die äquivalente Zeichenkettenform umgewandelt:

mysql> select CONCAT('My', 'S', 'QL');
-> 'MySQL'
mysql> select CONCAT('My', NULL, 'QL');
-> NULL
mysql> select CONCAT(14.3);
-> '14.3'
Siehe auch die Zeichenketten-Funktionen.
 
Zurück