kostenloser Webspace werbefrei: lima-city


ORDER BY zwei Variablen

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    mpsftp

    mpsftp hat kostenlosen Webspace.

    Hallo zusammen,

    ich bin (leider) irgendwie damit überfordert, eine SQL-Abfrage zu machen, wo das Attribut "ORDER BY" mit zwei Variablen gefüllt ist.

    Es gibt eine Tabelle mit den Spalten "kw" [Kalender Woche, tinyint] und "jahr" [Jahr, smallint]. Nun sollen alle Inhalte auf meiner Seite aufgelistet werden mit einer While-Schleife (klappt bisher ganz gut). Nur an der Reihenfolge hapert es. Es soll immer die aktuellste bzw. die höchste (kann auch in der Zukunft liegen) Wert angezeigt werden. Praktisch so (immer erst Jahr, dann KW):

    2016, 12
    2016, 01
    2015, 51
    2015, 50
    2014, 25
    2013, 18
    2013, 15

    Egal wie ich es mache - irgendetwas ist immer falsch. Mal ist die KW richtig herum, das Jahr aber nicht. Mal anders herum, mal beides verkehrt.

    Vielen Dank schon mal. Ist wahrscheinlich ganz simpel :wall:

    Gruß,
    mps
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. So wie dein Beispiel sortiert ist (absteigend) sollte sowas funktionieren:
    SELECT *
    FROM `tabelle`
    ORDER BY `jahr` DESC , `kw` DESC
  4. michaelkoepke

    michaelkoepke hat kostenlosen Webspace.

    Hey, zeig doch mal deine SQL-Abfrage, das würde schon mal interessant sein, da es wirklich so einfach ist.

    SELECT kw, jahr FROM Table
    ORDER BY jahr DESC, kw DESC;


    Diese Abfrage sollte den gewünschten Erfolg bringen.

    ORDER BY ist das Zauberwort zum Sortieren. Deine Abfrage wird nun nach dem Jahr (DESC-absteigend) und dann nach der kw sortiert.

    Zum Nachlesen: http://www.w3schools.com/sql/sql_orderby.asp

    MFG Micha

    Beitrag zuletzt geändert: 17.6.2015 22:17:23 von michaelkoepke
  5. Autor dieses Themas

    mpsftp

    mpsftp hat kostenlosen Webspace.

    Ich sehe gerade meinen Fehler. Ich habe nur am Ende DESC stehen, weil ich nicht wusste, dass das bei beiden geht/gemacht werden muss. Somit hat er die erste Spalte als Standard gesehen (ASC) und deshalb immer der Fehler. Danke sehr für die Hilfe. Klappt nun wunderbar.
  6. davidschwarzbeck

    davidschwarzbeck hat kostenlosen Webspace.

    Du trennst in SQL mehrere ORDER BY Operatoren mit einem Komma.
    Bedeutet
    SELECT * FROM tabelle ORDER BY `id` DESC, `datum` ASC
  7. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!