Georg: MySQL-Sortierung

Hallo,

ich stehe vor der wunderschönen Aufgabe das eine Artikelliste aus einer Datenbank erzeugt werden soll. Diese Listen sollten sortierbar nach Preis, Marke (jw. auf-/absteigend) usw. sein. Bis hierhin kein Problem. Nun sollen aber Artikel, die KEINEN Preis haben, immer zuletzt kommen. Bei der Vorauswahl "Preis, Absteigend" ja automatisch so, aber wie soll ich das bei den anderen Sortierungen machen? Da die Ergebnisse auch per LIMIT auf verschiedene Seiten aufgesplittet werden, scheidet der Umweg die Ergbnisse in einem Array zu sortieren ja auch aus (da müsste ich ja alle ergebnisse haben...). Habe ich nur einen Denkfehler oder gibt es hierfür eine sinnvolle Lösung?

Gruss Georg

  1. Tach!

    Bis hierhin kein Problem. Nun sollen aber Artikel, die KEINEN Preis haben, immer zuletzt kommen.

    Du kannst ein zusätzliches Sortierkriterium einfügen, dass bei vorhandenem Preis 0 ergibt und bei keinem Preis eine 1.

    ORDER BY IF(preis, 0, 1), deine sortierung

    dedlfix.

    1. Tach!

      Bis hierhin kein Problem. Nun sollen aber Artikel, die KEINEN Preis haben, immer zuletzt kommen.

      Du kannst ein zusätzliches Sortierkriterium einfügen, dass bei vorhandenem Preis 0 ergibt und bei keinem Preis eine 1.

      ORDER BY IF(preis, 0, 1), deine sortierung

      dedlfix.

      Hallo dedlfix, oh Mann, Danke! Da hätte ich aber selber drauf kommen können... Vielen Dank nochmal! Gruss Georg

      1. Liebe Mitdenker, liebe Wissende, liebe Neugierige,

        ja!

        Tach!

        Bis hierhin kein Problem. Nun sollen aber Artikel, die KEINEN Preis haben, immer zuletzt kommen.

        Du kannst ein zusätzliches Sortierkriterium einfügen, dass bei vorhandenem Preis 0 ergibt und bei keinem Preis eine 1.

        ORDER BY IF(preis, 0, 1), deine sortierung

        wobei man sauber darauf achten sollte, ob der Preis 0,00 oder NULL ist

        Spirituelle Grüße Euer Robert

        --
        Möge der Forumsgeist wiederbelebt werden!