SELECT lnr,a,b,c FROM t1 ORDER BY c = Nächster Datendatz
Von: Jaromir Prinzler (jprinzler@tplan-gmbh.de) [Profil]
Datum: 24.09.2009 10:07
Message-ID: <h9f9bd$qa5$1@online.de>
Newsgroup: de.comp.datenbanken.mysql
Datum: 24.09.2009 10:07
Message-ID: <h9f9bd$qa5$1@online.de>
Newsgroup: de.comp.datenbanken.mysql
Hallo ! Ich habe hier ein kleine Frage zu MySQL und SELECT: Es existiert eine Tabelle mit einem Index (lnr) und entsprechenden Inhalten. Eine normales SELECT würde so aussehen: SELECT lnr,a,b,c FROM t1 ORDER BY c; Die Sortierreihenfolge wird also durch c bestimmt. Nun kenne ich (programmtechnisch) den Index einer Zeile (lnr) innerhalb der Tabelle und möchte die darauf folgende unter Beachtung der Sortierfolge ermitteln. Da "c" aber kein nummerischer Wert ist, sondern in Abhängigkeit anderer Werte innerhalb einer Zeile berechnet wird, kann ein WHERE c > ... ODER auch WHERE lnr > ... nicht funktionieren. LIMIT 1 ist mir auch klar, aber irgendwie fehlt mir noch ein Schups? ...Jaro PS: Die eigendliche Abfrage sieht so aus: SELECT lnr,gebaeude,bauteil,gewerk,los,titel,position,inx,kurztext,menge,einheit,internaltyp,inte rnalstate FROM t1 ORDER BY IF((internaltyp & (1|128)) = (1+128),2,IF((internaltyp & (1|256)) (1+256),4,3)), gebaeude, IF((internaltyp & (2|128)) = (2+128),2,IF((internaltyp & (2|256)) (2+256),4,IF((internaltyp & 2) > 0,1,3))), bauteil, IF((internaltyp & (4|128)) = (4+128),2,IF((internaltyp & (4|256)) (4+256),4,IF((internaltyp & 4) > 0,1,3))), gewerk, IF((internaltyp & (8|128)) = (8+128),2,IF((internaltyp & (8|256)) (8+256),4,IF((internaltyp & 8) > 0,1,3))), los, IF((internaltyp & (16|128)) = (16+128),2,IF((internaltyp & (16|256)) (16+256),4,IF((internaltyp & 16) > 0,1,3))), titel, IF((internaltyp & (32|128)) = (32+128),2,IF((internaltyp & (32|256)) (32+256),4,IF((internaltyp & 32) > 0,1,3))), position, IF((internalstate & 2048) > 0,2,1), inx[ Auf dieses Posting antworten ]
Antworten
- Sam Kang (24.09.2009 23:04)
- Jaromir Prinzler (25.09.2009 14:33)
- Andreas Kretschmer (28.09.2009 11:37)
- Jaromir Prinzler (28.09.2009 12:04)
- Andreas Kretschmer (28.09.2009 12:39)
