Hallo Leute.
Ich hab ne wichtige Frage und ich hoffe ihr kennt euch aus.
Ich habe ein XML-basiertes PHP-Skript geschrieben was nach Attributen Datensätze aus einer Datenbank liest. Dieses XML-Element hat auch die Möglichkeit nur eine gewissen Anzahl an Datensätzen aufzulisten um den Benutzer nicht mit einer Liste von 500 Datensätzen zu konfrontieren hat er die Möglichkeit über Buttons links und rechts in 50er Schritten weiterzublättern.
Das Problem an der Sache ist: Der Auswahlbereich wird im PHP abgeschnitten, während die restlichen Daten verloren gehen. Das Datenbank-Backend liest aber immer 500 Stück ein und ich sammle mir die passenden 50 herraus.
Ist es möglich in einer Select-Anweisung die eine unbestimmte Anzahl an betroffenen Zeilen zurückgeben würde einen Bereich zur Rückgabe auszuwählen?
Kurz gesagt:
select * from table;
Gibt mir 500 Stück zurück
Ich will aber von den 500 erst ab 300 limit 50.
Also bekomm ich von der Datenbank gefundenen Datensatz 300 - 350 aus select * from table;
Auswahlbereiche mit Select bei Postgresql.
Auswahlbereiche mit Select bei Postgresql.
come to daddy, windowlicker!
get m:ke - http://get-mike.de
get m:ke - http://get-mike.de
MySQL kann das AFAIK. Ist aber meines Wissens nach nicht SQL-Standard.
Jabber: neptoon@jabber.org
It's only Rock'n'Roll but I like it
It's only Rock'n'Roll but I like it
Hallo MySQL wäre,
Bei PostgreSQL weiß ich leider nicht ob das funktioniert und habe auch keine zum testen laufen.
Edit:
Wobei $limitstart der Startdatensatz ist und $limit die Anzahl der rückgelieferten Datensätze.
Code: Alles auswählen
Select * from XYZ limit $limstart,$limit;
Edit:
Wobei $limitstart der Startdatensatz ist und $limit die Anzahl der rückgelieferten Datensätze.
Ubuntu Gutsy Gibbon, 2.6.20
- weedy
- Beiträge: 585
- Registriert: 02.11.2002 21:47:49
- Lizenz eigener Beiträge: GNU General Public License
-
Kontaktdaten:
Code: Alles auswählen
select ... limit 10 offset 20
weedy.
Coole Sache, das funktioniert mit Postgresql.
Hat man dadurch Geschwindigkeitsvorteile? Kommt mir irgendwie nicht so vor.
Gibt es noch eine Möglichkeit sich parallel ausgeben zu lassen wieviele Datensätze ohne offset und limit betroffen werden? Oder brauch ich dafür nen Select-Prefetch?
Hat man dadurch Geschwindigkeitsvorteile? Kommt mir irgendwie nicht so vor.
Gibt es noch eine Möglichkeit sich parallel ausgeben zu lassen wieviele Datensätze ohne offset und limit betroffen werden? Oder brauch ich dafür nen Select-Prefetch?
come to daddy, windowlicker!
get m:ke - http://get-mike.de
get m:ke - http://get-mike.de
Benutz dazu das explain Kommando.
->
->
Code: Alles auswählen
EXPLAIN SELECT * FROM foo;
QUERY PLAN
---------------------------------------------------------
Seq Scan on foo (cost=0.00..155.00 rows=10000 width=4)
(1 row)