Archiv verlassen und diese Seite im Standarddesign anzeigen : MySQL: SELECT Abfrage mit Limit die Gesamtzahl der Datensätze angezeigt bekommen
Hallo zusammen,
PHPMyAdmin macht ja oft Abfragen in der folgenden Art:
SELECT * FROM table WHERE username LIKE '%string%' LIMIT 0 , 30
Jetzt kommen als Ergebnis immer die abgefragten Datensätze, klar, aber es kommt auch immer etwas in der Art:
Zeige Datensätze 0 - 29 (43 insgesamt, die Abfrage dauerte 0.0459 sek.)
Wie kann ich jetzt auf die Datensätze "insgesamt" zugreifen, wenn ich in meiner Abfrage ein Limit gesetzt habe?
Thx,
Biko
Christoph
08-06-2007, 07:17
Wie kann ich jetzt auf die Datensätze "insgesamt" zugreifen, wenn ich in meiner Abfrage ein Limit gesetzt habe?
Gar nicht. Der Sinn von LIMIT ist es ja gerade, dass man nur auf die mit LIMIT spezifizierten Tupel zugreifen kann. Lass das LIMIT einfach weg.
LIMIT ist Imho auch kein Bestandteil von SQL Ansi oder ?
Limit macht auch wirklich nur Sinn wenn man ne limitierte Menge braucht, also nur die ersten 10 von .... Also gut fuer die Performance.
Fuer "gib mir zuerst dier ersten 10, dann die naechsten 10 ... " ist es nicht geeignet.
Ciao ...
Waxolunist
13-06-2007, 22:44
Fuer "gib mir zuerst dier ersten 10, dann die naechsten 10 ... " ist es nicht geeignet.
Dafür verwende ich "where rownum between x and y"
mwanaheri
14-06-2007, 07:16
Das Arbeiten mit limit und offset macht natürlich eigentlich nur bei sortierten Daten Sinn, aber das ist dem OP wohl auch klar. Um ein 'select count' kommt man aber wohl nicht drumrum.
Du kannst den Select mit limit folgendermaßen ausführen:
SELECT SQL_CALC_FOUND_ROWS * FROM table LIMIT 10
und als zweiten select:
SELECT FOUND_ROWS()
ergibt die tatsächliche Anzahl der Datensätze.
Außerdem kann man Limit auch mit Offset aufrufen
LIMIT Offset,Anzahl
Powered by vBulletin® Version 4.2.5 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.