limit et offset

Eléphant du PHP | 406 Messages

11 mai 2005, 08:50

salut,

Je suis allez à cette adresse
http://traduc.postgresqlfr.org/pgsql-fr ... limit.html
et j ai pas trop compris le principe du limit et offset ?

merci

Administrateur PHPfrance
Administrateur PHPfrance | 430 Messages

11 mai 2005, 09:59

Quand une requête retourne un grand nombre d'enregistrement et qu'on ne peux tous les traiter à la fois, on utilise limit et offset.
Par exemple, dans une appli qui affiche à l'écran la totalité des données d'une table, seules les données à l'écran sont exploitables, ca ne sert à rien de récupérer 10 000 lignes si tu peux en afficher que 20 non ?
Limit permet de limiter le nombre d'enregistremùent retournés, LIMIT 20 dans mon exemple.
Offset permet de se déplacer dans tes enregistrements :
LIMIT 20 OFFSET 0 => tu prend les 20 premiers enregistrements
LIMIT 20 OFFSET 20 => tu prend les enregistrement 20 à 40
LIMIT 20 OFFSET 103 => tu prend les enregistrements 103 à 123
...
...

tu as compris ?

en mysql le mot clé OFFSET n'existe pas, on se contente de faire précéder la limitation de l'offset suivit d'une ','
LIMIT [offset,] lignes
expl LIMIT 103,20

Eléphant du PHP | 406 Messages

11 mai 2005, 14:23

donc limit 5 offset 10: je peux les enregistrement de 10 à 15
limit 100 offset 0 :je prends les 100 premier enregistrement
c est cela

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

11 mai 2005, 15:24

T'as tout pigé ! ;)

Eléphant du PHP | 406 Messages

12 mai 2005, 08:15

Quand je fais cette requete cela veux dire :
SELECT * FROM livre LIMIT 1  OFFSET  $id; 
si $id=0, je prends le 1er enregistrement
si $id=1,je prends les enregistrement de 1 à 2 donc le 2eme enregistrement
si $id=2, je prends le 3eme enregistrement et ainsi de suite.....


??

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

12 mai 2005, 11:13

En toute logique, c'est ça.
Il te suffit de tester pour le vérifier.

Il faut toujours tester ! ;)

Eléphant du PHP | 406 Messages

12 mai 2005, 11:19

c est puissant alors ce truc

Administrateur PHPfrance
Administrateur PHPfrance | 430 Messages

16 mai 2005, 10:48

bah sur le coup du limit 1 y'a peut être d'autres moyens de le faire ;)

Mais quand il s'agit d'afficher petit a petit un grand nombre d'enregistrements, ca permet d'éviter de ramener tes 1000 lignes pour n'en afficher que 30 à la fois