Mysql Sortierung
Michael
- datenbank
0 King^Lully0 Nick0 Michael
0 Vinzenz Mai0 Michael
Angenommen ich habe folgende MySQL Tabelle:
Name KaufDatum Autos
Marie 1.2.2007 3
Heinz 1.2.2007 4
Bernd 1.2.2006 5
Uta 1.2.2005 4
Horst 1.2.2004 1
Nun möchte ich mir die Namen ausgeben lassen, sekundär sortiert nach Autos absteigend, zuerst aber die Namen Mit KaufDatum nach dem 1.1.2007 (Marie+Heinz). Ausgeben soll es dabei alle Zeilen.
eine normale SQL Abfrage wäre:
select Name from Tabelle where 1 order by Autos desc.
nur wie bekomme ich folgendes ergebnis hin, wobei erst die werte mit einem Datum nach 1.1.2007 nach Autos absteigend ausgegeben werden , und danach die Werte vor 1.1.2007 nach Autos absteigend?
Ergebnis sollte sein:
Heinz
Marie
Bernd
Uta
Horst
select Name from Tabelle where 1 order by Autos desc.
versuch mal sowas
select Name from Tabelle where (Bed.) order by Autos desc
union select Name from Tabelle where (Bed.) order by Autos desc
Angenommen ich habe folgende MySQL Tabelle:
Name KaufDatum Autos
Marie 1.2.2007 3
Heinz 1.2.2007 4
Bernd 1.2.2006 5
Uta 1.2.2005 4
Horst 1.2.2004 1Nun möchte ich mir die Namen ausgeben lassen, sekundär sortiert nach Autos absteigend, zuerst aber die Namen Mit KaufDatum nach dem 1.1.2007 (Marie+Heinz). Ausgeben soll es dabei alle Zeilen.
eine normale SQL Abfrage wäre:
select Name from Tabelle where 1 order by Autos desc.
nur wie bekomme ich folgendes ergebnis hin, wobei erst die werte mit einem Datum nach 1.1.2007 nach Autos absteigend ausgegeben werden , und danach die Werte vor 1.1.2007 nach Autos absteigend?
Ergebnis sollte sein:
Heinz
Marie
Bernd
Uta
Horst
... meinst Du sowas wie ORDER BY KaufDatum DESC, Autos DESC?
Nick
Nein, das meinte ich nicht, sondern eher nochmal eine "Where größer als bestimmtes Datum" spaltung
Hallo Michael,
ich verstehe Deine Frage nicht ganz. Ich hätte Dir das gleiche vorgeschlagen
wie Nick.
angenommen Du hast folgende Tabelle
Name KaufDatum Autos
Marie 1.3.2007 3 -- Beachte die Änderung
Heinz 1.2.2007 4
Bernd 1.2.2006 5
Uta 1.2.2005 4
Horst 1.2.2004 1
Sollte dann immer noch das hier herauskommen?
Heinz
Marie
Bernd
Uta
Horst
Freundliche Grüße
Vinzenz
Es soll erstmal die Werte nehmen, die nach dem 1.1.2007 sind, diese nach Autos absteigend ordnen, dann soll es die Werte vor dem 1.1.2007 nehmen und nach Autos(anzahl) absteigend ordnen:
über 2 selects würde es folgendermaßen aussehen
select Name from Tabelle where KaufDatum > 1.1.2007 order by Autos desc.
...Ausgabe
select Name from Tabelle where KaufDatum < 1.1.2007 order by Autos desc.
...Ausgabe
Nur wie kann man das in einer Abfrage lösen?