You are not logged in.

  • "Felix (Keyway)" is male
  • "Felix (Keyway)" started this thread

Posts: 191

Location: Hamburg

Occupation: Keinen da in der schulischen Ausbildung

  • Send private message

1

Thursday, June 21st 2012, 4:42pm

Was bewirkt OFFSET?

Ich habe mir vorhin mal den Quellcode des WCF 2.0 angeschaut, dort gibt es ja eine LIMIT [..] OFFSET [..] Abfrage. Was Limit macht, ist mir eigentlich klar, aber wofür OFFSET?

MySQL queries

1
SELECT * FROM someTable LIMIT ? OFFSET ?
Mit freundlichen Grüßen
Best Regards
Felix

Plunts

Member

  • "Plunts" is male

Posts: 5,925

Location: Ruhrpott

Occupation: Student

  • Send private message

2

Thursday, June 21st 2012, 4:47pm

OFFSET wie das LIMIT mit 2 Argumenten ;)
LIMIT 100, 20 zeigt 20 Einträge ab dem 100. an. LIMIT 20 OFFSET 100 tut das selbe, ist aber besser wenn du verschiedene Datenbank-Typen unterstützen möchtest.
Cacator cave malum! Aut si contempseris, habeas Jovem iratum!
Support und weitere Plugins von mir auf TechNex.org

Alexander Ebert

WoltLab Developer

  • "Alexander Ebert" is male

Posts: 4,732

Location: Berlin

  • Send private message

3

Thursday, June 21st 2012, 4:48pm

Angenommen du hast 100 Datensätze, wenn du nun die Datensätze 30-59 (30 Datensätze insgesammt) anzeigen möchtest, so setzt du LIMIT 30 OFFSET 30 ein. OFFSET ist nichts weiter als ein Versatz um einen bestimmten Teil einer Ergebnisliste abzufragen. Ich empfehle dir die Lektüre der MySQL Dokumentation zu SELECT ;)
Alexander Ebert
Developer WoltLab® GmbH


  • "Felix (Keyway)" is male
  • "Felix (Keyway)" started this thread

Posts: 191

Location: Hamburg

Occupation: Keinen da in der schulischen Ausbildung

  • Send private message

4

Thursday, June 21st 2012, 4:55pm

Ah 8o . Aber wenn ich auch Postgresql untersützen will, nehme ich besser OFFSET. Wenn ich OFFSET auf 0 setze, liefert er mir bei dieser Abfrage 100 Einträge vom Anfang?

MySQL queries

1
SELECT * FROM someTable LIMIT 100 OFFSET 0


Danke :) .
Mit freundlichen Grüßen
Best Regards
Felix

This post has been edited 3 times, last edit by "Felix (Keyway)" (Jun 21st 2012, 5:09pm)


Alexander Ebert

WoltLab Developer

  • "Alexander Ebert" is male

Posts: 4,732

Location: Berlin

  • Send private message

5

Thursday, June 21st 2012, 5:11pm

Für was entwickelst du denn, dass du PostgreSQL unterstützen musst?

Edit: LIMIT 30 OFFSET 0 = Die ersten 30 Einträge
Alexander Ebert
Developer WoltLab® GmbH


  • "Felix (Keyway)" is male
  • "Felix (Keyway)" started this thread

Posts: 191

Location: Hamburg

Occupation: Keinen da in der schulischen Ausbildung

  • Send private message

6

Thursday, June 21st 2012, 5:48pm

Für was entwickelst du denn, dass du PostgreSQL unterstützen musst?

Edit: LIMIT 30 OFFSET 0 = Die ersten 30 Einträge


Ich schreibe eine kleine Scriptsammlung für PHP-Einsteiger, also was möglichst einfaches, was MySQL und PosgreSQL unterstützt ;) .
Mit freundlichen Grüßen
Best Regards
Felix

This post has been edited 1 times, last edit by "Felix (Keyway)" (Jun 23rd 2012, 2:59pm)


Plunts

Member

  • "Plunts" is male

Posts: 5,925

Location: Ruhrpott

Occupation: Student

  • Send private message

7

Thursday, June 21st 2012, 7:55pm

Genau, Postgre unterstützt laut Dokumentation nur die Variante mit OFFSET, MySQL kann beides. Noch was zur Anwendung: Am meisten Sinn macht es natürlich wenn man etwas in mehrere Seiten unterteilt. Dann kannst du in PHP eine Variable $itemsPerPage machen, das Offset ist dann $page*$itemsPerPage, wobei die Seite von 0 an gezählt wird.
Cacator cave malum! Aut si contempseris, habeas Jovem iratum!
Support und weitere Plugins von mir auf TechNex.org

Alexander Ebert

WoltLab Developer

  • "Alexander Ebert" is male

Posts: 4,732

Location: Berlin

  • Send private message

8

Thursday, June 21st 2012, 8:12pm

PHP Source code

1
$offset $itemsPerPage * ($pageNo -);
Alexander Ebert
Developer WoltLab® GmbH


  • "Felix (Keyway)" is male
  • "Felix (Keyway)" started this thread

Posts: 191

Location: Hamburg

Occupation: Keinen da in der schulischen Ausbildung

  • Send private message

9

Saturday, June 23rd 2012, 3:04pm

Vielen Dank euch beiden :) .
Mit freundlichen Grüßen
Best Regards
Felix