Datensätze sinnvoll zählen

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

  • Datensätze sinnvoll zählen

    Ich habe eine Query

    SELECT a.id_object AS id_object, max( a.id_comment ) AS max_id
    FROM album_comments a
    LEFT JOIN album_fotos b ON a.id_object = b.id_foto
    LEFT JOIN album_names c ON a.id_object = c.id_foto
    WHERE (
    (
    b.id_art = '2'
    AND b.id_gallery = '1'
    )
    OR c.id_user = '1'
    )
    AND a.id_art = '1'
    AND a.deleted = '0'
    AND b.deleted = '0'
    GROUP BY id_object
    ORDER BY max_id DESC
    LIMIT 0 , 10

    Die Query ist völlig egal und funktioniert tadellos. Mit diesem Bsp. werden, wenn ich kein Limit mache ca. 60 Datensätze gefunden. Da ich das ganze Seitenweise anzeige limitiere ich natürlich jewils auf 10. Trotzdem brauche ich die Zahl der maximalen Datensätze.

    Gibt es eine einfachere Möglichekeit, dies zu erledigen ohne dass ich die Query 2 mal ausführen muss (einmal Normal und einmal ohne Limit oder mit count)?

    Danke für die Mithilfe

  • #2
    Entweder du läss die Query einmal komplett durchlaufen, um die Gesamtanzahl der Datensätze zu bekommen und gibst die dann in einer Session mit. Oder du speicherst die Max.-Anzahl irgendwo ab und aktualisierst sie immer, wenn sich dein Datenbestand ändert.
    it's not a bug,
    it's a feature!

    Kommentar


    • #3
      Re: Datensätze sinnvoll zählen

      SQL_CALC_FOUND_ROWS/SELECT FOUND_ROWS()

      http://dev.mysql.com/doc/refman/4.1/...functions.html
      I don't believe in rebirth. Actually, I never did in my whole lives.

      Kommentar


      • #4
        SELECT FOUND_ROWS() geht nicht, gibt immer 10 zurück, da ja auf 10 Limitiert wurde.

        Abspeichern ist auch nicht sinnvoll, da sich zu oft was ändert.

        Kommentar


        • #5
          Original geschrieben von zimmbi
          SELECT FOUND_ROWS() geht nicht, gibt immer 10 zurück, da ja auf 10 Limitiert wurde.
          Bullshit.

          Noch mal nachlesen, verstehen, Danke.
          I don't believe in rebirth. Actually, I never did in my whole lives.

          Kommentar


          • #6
            Ok, danke. Funktioniert. Hab irgendwo gelesen, dass das langsamer ist als die Query ein 2 mal auszuführen, stimmt das?

            Kommentar


            • #7
              Und wo hast du das gelesen - im Kaffeesatz?

              Auch bzgl. dieser Geschwindigkeitsfrage steht was in der Doku.

              Könntest du dir vielleicht mal angewöhnen, sowas auch vollständig zu lesen, statt immer nur zu überfliegen, und dann eine dort bereits beantwortete Frage hier erneut zu stellen? Danke.
              I don't believe in rebirth. Actually, I never did in my whole lives.

              Kommentar


              • #8
                habs nur überflogen weils mir zu blöde war alles zu lesen und ich nicht davon ausgegangen bin dass die sich tatsächlich gedanken machen über die geschwindigkeit

                Kommentar


                • #9
                  WTF? Warum sollten die sich keine Gedanken über Geschwindkeit machen? CPU-Hersteller machen sowas ja auch nich, oder was?
                  Nur wenige wissen, wieviel man wissen muss, um zu wissen, wie wenig man weiß.

                  Kommentar

                  Lädt...
                  X