2009-10-09 8 views
-1

J'utilise MySQL. Je souhaite limiter la quantité de lignes extraites de la base de données. J'ai une instruction SQL qui renvoie 10 000 enregistrements qui sont tous pertinents pour la recherche.Base de données: Pagination SQL?

SELECT colA, colB, colC 
FROM xyzTable 
WHERE ... 
ORDER BY colA 

Je sais comment utiliser l'instruction TOP pour retourner le nombre de TOP x de lignes extraites, mais comment puis-je récupérer les lignes rangées au milieu du résultat de recherche, par exemple, les lignes 50-100?

Répondre

1

MySQL de limit clause facilite cette opération:

SELECT cols 
FROM table 
LIMIT offset, rowcount 

Dans votre cas:

LIMIT 49, 50 -- skip rows 0-49, grab the next 50 
0

en faisant quelque chose comme:

SELECT colA, colB, colC FROM xyzTable WHERE ... ORDER BY colA LIMIT 30 , 40

30 étant le numéro que vous voulez commencer à, 40 étant maintenant de nombreux articles que vous voulez voir.

Ensuite, vous pouvez incrémenter ces valeurs comme bon vous semble.

0

Utilisation LIMIT:

SELECT ... FROM ... WHERE ... ORDER BY ... LIMIT 50, 50 

La clause LIMIT peut être utilisée pour limiter la nombre de Les lignes ont renvoyé par l'instruction SELECT. LIMITE prend un ou deux arguments numériques

0
SELECT colA, colB, colC 
FROM xyzTable 
WHERE ... 
ORDER BY colA 
LIMIT 10, 5 

Le LIMIT 10, 5 définit la gamme des résultats (ce renverrait résultats 11,12,13,14,15).

0
SELECT colA, colB, colC 
FROM xyzTable 
WHERE ... 
ORDER BY colA LIMIT 49,50; 

LIMIT rangée décalée, de nombre de lignes Le premier argument spécifie le décalage de la première ligne de retour, et le second indique le nombre maximum de lignes pour revenir ...

Questions connexes