Existe-t-il un moyen dans MySQL de faire ignorer les 10 premiers résultats d'une requête SELECT? J'aimerais que ça marche quelque chose comme LIMIT.
Existe-t-il un moyen dans MySQL de faire ignorer les 10 premiers résultats d'une requête SELECT? J'aimerais que ça marche quelque chose comme LIMIT.
Réponses:
Utilisez LIMIT avec deux paramètres. Par exemple, pour renvoyer les résultats 11-60 (où le résultat 1 est la première ligne), utilisez:
SELECT * FROM foo LIMIT 10, 50
Pour une solution pour renvoyer tous les résultats, voir la réponse de Thomas .
Il y a aussi un OFFSET qui devrait faire l'affaire:
SELECT column FROM table
LIMIT 10 OFFSET 10
limit 10,10
OFFSET est ce que vous recherchez.
SELECT * FROM table LIMIT 10 OFFSET 10
À partir du manuel :
Pour récupérer toutes les lignes d'un certain décalage jusqu'à la fin du jeu de résultats, vous pouvez utiliser un grand nombre pour le deuxième paramètre. Cette instruction récupère toutes les lignes de la 96e ligne à la dernière:
SELECT * FROM tbl LIMIT 95,18446744073709551615;
Évidemment, vous devriez remplacer 95par 10. Le grand nombre qu'ils utilisent est 2 ^ 64 - 1, au fait.
LIMIT vous permet de sauter n'importe quel nombre de lignes. Il a deux paramètres, et le premier d'entre eux - combien de lignes à ignorer
select * from table where id not in (select id from table limit 10)
où idest la clé de votre table.
Si votre table est triée par identifiant, vous pouvez facilement le faire en:
select * from table where id > 10