Knud Schröder: (MySQL) Sortierproblem(chen)

Hallo Forummer !

Dank an dieses Forum, das mir immer wieder die Möglichkeit gibt, meine Fragen loszuwerden und (das ist das Beste) zuallermeist auch qualifizierte und sachverständige Antworten zu erhalten.

Sollte jetzt keine Bebauchpinselung werden, musste mal raus, ohne das Forum zu belasten. *g*

Meine Frage/Problem.

Ich speichere "ID's" nach folgendem Schema:

10001
10001_1
10001_2
10002
10002_1
10002_2
10002_3
10003
...

Jetzt möchte ich meine Select-Abfrage so gestalten, dass er einerseits die größte zuerst anzeigt (soweit kein Problem mit select * from tab order by idnr DESC) aber ich möchte z.B. innerhalb der 10001 wieder aufsteigend sortieren. Die Liste soll also nachher so aussehen:

10003
10002
10002_1
10002_2
10002_3
10001
10001_1
10001_2

Wie stelle ich das am Besten an?

Danke für Eure Hilfe (wie immer!)

Knud

  1. Hallo,

    kann Dir nicht sagen, wie es mit einem Feld funzt. Du könntest aber zwei Felder (ID und UN oder ähnlich) einführen, wobei ID die Zahl vor dem "_" Underscore enthält und UN die Zahl dahinter. Falls ID ein Schlüsselfeld sein soll, kannst Du diese beiden Felder auch als zusammengesetzten Schlüssel definieren. Damit ists dann kein Prob:

    SELECT * FROM tab ORDER BY ID DESC, UN ASC;

    Gruß
    Patric

  2. Hallo !

    Es müsste m.E. auch mit nur einem Feld gehen.

    Mit Access geht es z.B. so

    select ID from TAB order by left([ID],5) desc, ID asc

    Bei anderen RDMS muss eventuell die left-Funktion zuerst in den select-Teil mit Alias und dann dieser Alias in den order by-Teil.

    Gruss,
    Kerki