2011-06-13 5 views
5

Existe-t-il un moyen propre de limiter le nombre de résultats d'une instruction SQLite3 SELECT?SQLite3 et la limitation du nombre de résultats

Par exemple, je pourrais interroger avec SELECT * FROM myTable WHERE name='Smith'; en réalisant que je pourrais rencontrer des milliers de visites. Je voudrais que SQLite3 me dise les 10 premiers qu'il rencontre et termine la requête. Comment puis-je faire cela?

Si SQLite3 ne le fournit pas immédiatement, y a-t-il quelque chose que je puisse modifier dans le code source SQLite3 à partir duquel je peux reconstruire? Supposons que je sois dans un environnement où je n'ai qu'un seul thread et que je voudrais reprendre le contrôle dans un délai raisonnable.

+0

@All: Merci - J'aimerais accepter chacune de vos réponses. – SK9

Répondre

10

Vous êtes à la recherche de la LIMIT clause:

SELECT * FROM myTable WHERE name='Smith' LIMIT 10 
4

Voir la syntaxe SELECT: il y a un mot-clé LIMIT:

select * from sometable where .... limit 10; 

Regardez le OFFSET aussi, peut être utile pour les résultats de recherche de personnes . (Également sont souvent associés à une clause ORDER BY si vous voulez des résultats cohérents à travers les requêtes.)

3

De l'SQLite docs:

La clause LIMIT est utilisée pour placer une limite supérieure du nombre de lignes retournées par une instruction SELECT. Toute expression scalaire peut être utilisée dans la clause LIMIT, à condition qu'elle évalue un entier ou une valeur qui peut être convertie sans perte en entier. Si l'expression évalue à une valeur NULL ou à toute autre valeur qui ne peut pas être convertie sans perte en un nombre entier, une erreur est renvoyée. Si l'expression LIMIT évalue à une valeur négative, il n'y a pas de limite supérieure sur le nombre de lignes retournées. Sinon, le SELECT renvoie uniquement les N premières lignes de son jeu de résultats, où N est la valeur à laquelle l'expression LIMIT évalue. Ou, si l'instruction SELECT renvoie moins de N lignes sans clause LIMIT, l'ensemble de résultats entier est renvoyé.

Questions connexes