Anzahl aller Zeilen mit Select

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

  • Anzahl aller Zeilen mit Select

    Hallo,

    ich hole 100 Einträge aus der Datenbank.

    PHP-Code:
    SELECT FROM table_name WHERE col_x=3 LIMIT 100 
    Wie ist es aber möglich, mit dem selben Statement noch die gesamte Anzahl der Einträge in der Tabelle mitliefern zu lassen? Ich könnte eine extra Anfrage machen, aber das wollte ich mir ersparen.

    Danke schonmal.

  • #2
    select *, COUNT(*)
    it's not a bug,
    it's a feature!

    Kommentar


    • #3
      Das würde ich dir allerdings empfehlen, denn die einzig andere Möglichkeit wäre IMHO folgender Query:

      Code:
      SELECT *, COUNT(*) FROM table WHERE column = 'wert'
      Damit zählt MySQL allerdings alle entsprechenden Datensätze für jede zurückgegebene Zeile.

      Edit: Noe, das geht so gar nicht. Geht also nur mit einem UNION - finde ich persönlich aber eher unschön.
      [FONT="Helvetica"]twitter.com/unset[/FONT]

      Shitstorm Podcast – Wöchentliches Auskotzen

      Kommentar


      • #4
        Danke! Dann mache ich eben ein extra Statement.

        Kommentar


        • #5
          Wenn du wirklich die Gesamtzahl willst, mach COUNT(*). Wenn du aber wissen willst, wieviele Einträge dein Query inkl. WHERE ohne das LIMIT gebracht hätte, dann nimm lieber CALC_FOUND_ROWS .
          ich glaube

          Kommentar


          • #6
            Original geschrieben von XGremliN und unset
            select *, COUNT(*)
            Probiert das doch mal aus und ihr werdet
            Code:
            #1140 - Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY clause
            erhalten. Aber auch wenn ihr noch ein GROUP BY rein hängt, macht das keinen Sinn, auch wenn MySQL (im Gegensatz zu Oracle oder MSSQL) solche Abfragen erlaubt. Grundsätzlich machen in einer Abfrage mit Aggregats-Funktionen nur Attribute Sinn, die auch in der GROUP BY-Klausel enthalten sind.
            Aber mit mysql_num_rows() erhälst du ja sowieso die Anzahl Records für jede Abfrage.
            Gruss
            H2O

            Kommentar

            Lädt...
            X