2010-08-03 22 views
9

Me gustaría limitar la cantidad de filas que obtengo en MySQL. ¿Puedes mostrarme cómo?Limitar el resultado de la consulta SQL en MySQL

ejemplo:

  • primera consulta me gustaría recuperar sólo los primeros 10.000 registros
  • segunda consulta me gustaría recuperar sólo los registros de 10.000 - 20.000

etc

+1

qué motor SQL está utilizando? – Fosco

+0

hola, es MySQL – chcne

+1

posible duplicado de [PHP/Paginación MySQL] (http://stackoverflow.com/questions/3095474/php-mysql-pagination) –

Respuesta

10

El término que está buscando es "paginación". Desafortunadamente, esto se hace de manera diferente dependiendo del motor SQL.

Para MS SQL Server, consulte este Stack Overflow question.

Ya que menciona MySQL, en realidad es bastante simple:

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

La primera declaración obtiene resultados 1-10.000, y la segunda declaración obtiene resultados 10,001-20,000.

+0

gracias eso es lo que estaba buscando – 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 y PostgreSQL apoyo OFFSET que se utiliza generalmente con un LIMIT cláusula.

SELECT column FROM table 
LIMIT 10000 

SELECT column FROM table 
LIMIT 10000 OFFSET 10000 
1

en MySQL lo hace de la siguiente manera

SELECT * FROM PERSON_TBL LIMIT 0, 1000 

SELECT * FROM PERSON_TBL LIMIT 1000, 1000 

consulta 1 buscará primeros 1000 registros,

Consulta 2 buscará siguientes 1000 registros

Sintaxis para la cláusula límites

LIMITES DESPLAZAMIENTO, ROWCOUNT

Dónde ROWCOUNT dar el número de la fila a buscar

OFFSET da de qué fila para ir a buscar más información here

4

Creo que las siguientes consultas le dará el resultado deseado

SELECCIONAR * DESDE PERSON_TBL LÍMITE 0, 10000

@ primera consulta me gustaría recuperar sólo los primeros 10.000 registros

SELECT * FROM PERSON_TBL LÍMITE 10000,10000

@ segunda consulta que me gustaría recuperar sólo los registros de 10.000 - 20.000

0

en MySQL:

SELECT * FROM `your_table` LIMIT 0, 10000 

Esto mostrará los primeros resultados 10000 a partir de la base de datos.

SELECT * FROM `your_table` LIMIT 10000, 20000 

Esto mostrará los registros 10001, 10002, ..., 20000

Cuestiones relacionadas