Nach 2 Daten gleichzeitig sortieren

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Nach 2 Daten gleichzeitig sortieren

    hallo,

    ich habe ein problem mit einer datenbank abfrage.
    Ich habe eine Tabelle products mit Produkten und möchte
    auf der Startseite die neusten Produkte und oder die neusten
    Updates ausgeben.
    Eine Spalte heißt date_new und eine Spalte heißt date_update.

    Wenn ich folgende Abfrage verwende, wird immer nur nach einer
    Spalte sortiert:

    SELECT * FROM products WHERE (active=1) ORDER BY date_update DESC, date_new DESC LIMIT 10

    Anscheinend wird immer erst die Sortierung der einen Spalte komplett ausgegeben und dann die andere. Da natürlich mehr als 10 Produkte in der Datenbank sind, werden die neuen in diesem Fall gar nicht mehr angezeigt. Mit welcher Abfrage erreiche ich, dass zuerst die Updates UND Neuheiten von heute angezeigt werden und dann von gestern usw....?

  • #2
    Re: Nach 2 Daten gleichzeitig sortieren

    Code:
    SELECT
       ...,
       IF (date_new > date_update, date_new, date_update) AS sortierdatum
    FROM Tabelle
    ORDER BY sortierdatum
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      hmm scheint nicht zu funktionieren. jetzt sortiert er nur noch nach neuen Produkten.

      Kommentar


      • #4
        Wie alt ist die zehntälteste Neuigkeit und wie alt das letzte Update?

        Sprich: Ich hätte gerne Beispieldaten
        Ich denke, also bin ich. - Einige sind trotzdem...

        Kommentar


        • #5
          ok beispiel:

          spalte date_new:

          2006-09-25
          2006-09-25
          2006-09-25
          2006-09-24
          2006-09-24
          2006-09-22
          2006-09-21
          ...

          spalte date_update:

          2006-09-25
          2006-09-24
          2006-09-24
          2006-09-24
          2006-09-24
          2006-09-23
          2006-09-23
          ...

          jetzt sollen halt zuerst die neuheiten und updates vom 25 ausgegeben werden, dann vom 24 usw.
          sollten mehr als 10 neuheiten von heute existieren, sollen auch keine
          updates mehr ausgegeben werden. aber ansonsten halt immer das
          aktuellste nach vorne.

          Kommentar


          • #6
            Wenn du nur das Tagesdatum vergleichst (ohne Uhrzeit), ist die Wahrscheinlichkeit, dass es mehr Neuheiten und Updates gibt, als den LIMIT auswählen soll, natürlich sehr hoch.
            Wenn du dann von diesen Datensätzen, welche das Limit überschreiten würden, den Neuheiten oder den Updates den Vorzug geben willst, dann solltest du dazu passend natürlich noch ein zweites Sortierkriterium definieren.
            Da überlege aber bitte erst mal selber, wie das Aussehen könnte.
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              wozu brauch ich denn ein zweites kriterium?

              ich sehe dafür keinen grund. es wird doch wohl möglich sein,
              dass man zuerst alle aktuellen neuheiten bekommt und dann alle
              aktuellen updates. oder nicht?!

              Kommentar


              • #8
                Original geschrieben von cartm4n
                es wird doch wohl möglich sein, dass man zuerst alle aktuellen neuheiten bekommt und dann alle aktuellen updates. oder nicht?!
                Wenn du weißt, wie man das macht, ist das Problem ja gelöst.
                I don't believe in rebirth. Actually, I never did in my whole lives.

                Kommentar

                Lädt...
                X