SELECT-Ergebnis sortieren funzt net

D

Dunsti

Hi,

hab da ein Problem:

Laut MySQL-Handbuch kann man die Ergebnisse einer SELECT-Abfrage mit dem Schlüsselwort ORDER sortieren lassen (ASC oder DESC)

Laut dem selben Handbuch ist es auch möglich, nach mehr als nur einem Feld sortieren zu lassen:
select college, region, seed from tournament ORDER BY region, seed

Dies funktioniert bei mir aber nicht:

SELECT Id, Titel, Details, Location, Strasse, Ort, Tag, Monat, Jahr, Uhrzeit FROM events ORDER BY Jahr, Monat, Tag DESC

Solange ich nur nach Jahr sortieren lasse klappt es wunderbar, aber sobald ich ein zweites Feld bei ORDER mit angebe klappt es nicht mehr. :(

Ich habe auch schon versucht, statt den Feldnamen die entsprechende Ordnungszahl anzugeben. klappt auch net.

Hoffe mir kann wer helfen.

Gruß
Dunsti
 
mhh sicher das das gehen muss. ich stell mir das schwer for. man kann ja nich nach 2 zahlen gleichzeitig ordnen
 
also in meinem Handbuch wird das mit den 2 sortierkriterien nur genutzt weil eines der beiden nicht eindeutig bzw überall vorhanden ist,vieleicht geht das nicht wenn beide Eindeutig sind.
kenn mich mit mysql aber nicht aus ist nur eine vermutung.


tob

Nachtrag:mad:Husky
Ich denke man kann schon nach 2 Zahlen gleichzeitig sortieren. Man muss dann beide unterschiedlich stark gewichten.wenn es zb mehrer Zeilen mit einer 5 region(als primärerSortierSchlüssel) gibt die aber bei seed(sekundärer weniger stark gewichteter Schlüssel)verschiedene werte haben (1,3,5,7)könnte man sie so ordnen:
1.)5-1
2.)5-3
3.)5-5
4.)5-7
5.)6-12
6.)7-2
7.)7-99
8.)8-
.......
 
Zuletzt bearbeitet:
hmm also gehen muss es.

Columns selected for output may be referred to in ORDER BY and GROUP BY clauses using column names, column aliases, or column positions. Column positions begin with 1:
mysql> select college, region, seed from tournament
ORDER BY region, seed;
mysql> select college, region AS r, seed AS s from tournament
ORDER BY r, s;
mysql> select college, region, seed from tournament
ORDER BY 2, 3;

To sort in reverse order, add the DESC (descending) keyword to the name of the column in the ORDER BY clause that you are sorting by. The default is ascending order; this may be specified explicitly using the ASC keyword.

Das ist von http://www.mysql.com

Ich habe es gerade auch bei mir probiert.
und die abfrage
SELECT username, datum, text FROM termin_kalender ORDER BY username, datum desc
funktioniert.

Head
 
danke Jungs, aber ich hab den Fehler gefunden. :)

Natürlich geht es, aber man muss nach jedem Sortierkriterium extra angeben, ob auf- oder absteigend sortiert werden soll.

Ich wollte nach allen drei Feldern absteigend sortieren, und da muss es heißen:

ORDER BY Jahr DESC, Monat DESC, Tag DESC

Bei meiner ersten Variante hat er also das Jahr und den Monat aufsteigend sortiert, und dann den Tag absteigend. Da ich nur wenige Einträge in der Tabelle hatte, sah es dann so aus, als wenn er nicht sortieren würde.

trotzdem thx. :)

Gruß
Dunsti
 
Zurück