Hier im Forum bekommt ihr bei euren fragen schnelle hilfe.Hier geht es rund um das Web SeitenProgrammieren.Alles rund ums Javascript,Html,Php,Css und Sql.Auf fast allen Fragen haben wir eine Antwort.
Der Soforthilfe-chat verspricht das ,was sein Name sagt. Hier sind Leute Online die sofort ihre hilfe anbieten.Seht in der OnlineListe nach und wenn einer Online ist werdet ihr auch antwort bekommen. Admine ,Moderatoren und Helfer sind unsere Spezialisten in Sachen Web Programierung
166 Unwetterwarnungen in Deutschland
Die Datenbank wurde zuletzt um 24.09.2020 15:42:12 Uhr aktualiesiert

MySQL Limit: Anzahl Ergebnisse ohne LIMIT herausfinden

In einigen Situation ist der geneigte Entwickler interessiert an der Gesamtzahl der Ergebnisse, die eine Abfrage ohne LIMIT – Klausel ergeben hätte. Die Holzhammermethode in so einem Fall ist, die Abfrage einfach nochmal ohne LIMIT abzufeuern. Doch es geht besser. Und zwar mit folgendem Konstrukt:

SELECT SQL_CALC_FOUND_ROWS productid, price, stock  FROM products  WHERE price > 100  LIMIT 10, 30;  SELECT FOUND_ROWS(); 

Durch das „Einschleusen“ von SQL_CALC_FOUND_ROWS können wir direkt danach mit FOUND_ROWS() die Gesamtzahl an Ergebnissen erfragen. Für den Fall, dass nur ein Attribut selektiert werden soll, kann man auch direkt eine Abfrage draus machen:

SELECT SQL_CALC_FOUND_ROWS productid  FROM products  WHERE price > 100  LIMIT 10, 30  UNION  SELECT FOUND_ROWS(); 

Auf die Art und Weise wird an das Resultset als letzte Zeile noch die Gesamtzahl an Ergebnissen ohne LIMIT angehangen. Mehr dazu direkt im MySQL Manual.

Zum Abschluss muss ich mich nochmal aufregen: Es gibt in MySQL keine Möglichkeit, alle Datensätze ab einem gewissen offset zu bekommen. Etwas verschämt schlägt das Handbuch vor, in solchen Fällen zu unschönen Konstrukten dieser Art zu greifen:

SELECT * FROM tbl LIMIT 95,18446744073709551615;