2010-08-03 2 views
9

Je voudrais limiter la quantité de lignes que je récupère dans MySQL. Pouvez-vous me montrer comment?Limiter le résultat de la requête SQL dans MySQL

ex:

  • 1ère requête Je voudrais récupérer uniquement les 10.000 premiers enregistrements
  • 2ème requête que je voudrais récupérer uniquement les enregistrements de 10 000 - 20.000

etc

+1

quel moteur sql utilisez-vous? – Fosco

+0

salut, il est MySQL – chcne

+1

duplication possible de [PHP/MySQL Pagination] (http://stackoverflow.com/questions/3095474/php-mysql-pagination) –

Répondre

10

Le terme que vous cherchez est "pagination". Malheureusement, cela est fait différemment selon le moteur SQL. Pour le service MS SQL Server, voir Stack Overflow question.

Puisque vous avez mentionné MySQL, il est en fait assez simple:

SELECT [columns] FROM [a table] LIMIT 10000 
SELECT [columns] FROM [a table] LIMIT 10000 OFFSET 10000 

La première déclaration va chercher les résultats 1-10,000, et la deuxième instruction va chercher les résultats 10,001-20,000.

+0

merci c'est ce que je cherchais – chcne

3
select top x * from table in SQL Server 

select * from table where ROWNUM < x in Oracle 

select * from table limit x in MySQL 
0

TSQL

SELECT TOP 10000 ...

PL/SQL

... WHERE ROWNUM < 10000 ...

2

MySQL et PostgreSQL OFFSET qui est habituellement utilisé avec un LIMIT clause.

SELECT column FROM table 
LIMIT 10000 

SELECT column FROM table 
LIMIT 10000 OFFSET 10000 
1

dans une base MySQL vous faites comme suit

SELECT * FROM PERSON_TBL LIMIT 0, 1000 

SELECT * FROM PERSON_TBL LIMIT 1000, 1000 

Requête 1 récupérera 1000 premiers enregistrements,

Requête 2 récupérera 1000 enregistrements suivants

Syntaxe clause limite

LIMITS OFFSET, ROWCOUNT

Où ROWCOUNT donner le numéro de la ligne pour aller chercher

OFFSET donne de la ligne à chercher plus d'info here

4

Je pense que les requêtes suivantes vous donnera le résultat souhaité

SELECT * FROM PERSON_TBL LIMIT 0, 10000

@ 1ère requête Je voudrais récupérer uniquement les 10.000 premiers enregistrements

SELECT * FROM PERSON_TBL LIMITE 10000,10000

@ 2ème requête que je voudrais récupérer uniquement les enregistrements de 10 000 - 20 000

0

MySQL:

SELECT * FROM `your_table` LIMIT 0, 10000 

Cela permet d'afficher les 10000 premiers résultats de la base de données.

SELECT * FROM `your_table` LIMIT 10000, 20000 

Cela montrera des documents 10001, 10002, ..., 20000