Lycro: / SQL: sortieren nach 2 Kriterien

Hallo zusammen,

ich möchte sortieren nach dieser Regel:
                SELECT * FROM topliste
                ORDER BY LhitsINtot + 1 DESC,
                LhitsIN + 1 DESC LIMIT 0,100

Ich habe die Werte:
LhitsINtot: 100,80,20,0,0,...
und
LhitsIN: 3,1,0,0,...
(beide natürlich durcheinander d.h. z.B. 20,80,0,0,100,...)

LhitsINtot zählt richtig, allerdings wird LhitsIN falsch gezählt: 1,3,0,0,...
es sollte aber sein 3,1,0,0,...

Was stimmt an dem Befehl nicht?

Viele Grüße
Lycro

  1. Hallo Lycro,

    SELECT * FROM topliste
          ORDER BY LhitsINtot + 1 DESC,
          LhitsIN + 1 DESC LIMIT 0,100

    Warum bitte ein +1? Ob du 5,3,1 oder 4,2,0 sortierst, kommt doch das gleiche raus !??!

    es sollte aber sein 3,1,0,0,...

    Ja, wie soll denn nach BEIDEM sortiert werden?
    Wenn du beides zum sortieren angibst, wird primär nach dem 1. sortiert, und nur falls dort gleiche Werte sind, dann kommt das zweite ins Spiel :-)
    So wie wenn du in einer Namensliste nach Nachnamen und bei gleichem nach dem Vornamen sortieren möchtest. Auch hier kann sein, dass der Vorname mit Z vor dem mit A ist, weil es ja primär nach Nachnamen geht :-)

    werbeklaus

    1. Hi, danke für die Antwort.
      habe nun den Fehler gefunden - ich wollte es ja so, dass bei gleichem Wert der 2te Wert beachtet wird - muss einfach die beiden Abfragen tauschen, damit total eben nur als 2tes vor heute sortiert wird.

      Danke nochmal

      Gruß
      Lycro

      1. Achja, die +1 war um dafür zu sorgen, dass unbedingt ein numerischer Wert erhalten ist um nicht so zu sortieren: 1,10,11,2,...

        Gruß
        Lycro

        1. Hi Lycro!
          Achso. Aber ich denke, wenn du in MySQL als Spaltentyp einen numerischen wählst, gibt es das problem nicht :-)

          werbeklaus