2012-01-10 28 views
13

¿Cómo puedo obtener solo 10 registros de una tabla donde hay más de 1000 registros? Tengo una tabla de prueba con rowid, nombre, costo.Cómo seleccionar N registros de una tabla en mysql

select name, cost from test; 

aquí Quiero seleccionar solo las primeras 10 filas y no quiero seleccionar rowid.

Respuesta

23

Para seleccionar los primeros diez registros que puede limitar el uso seguido por el número de registros que necesita:

SELECT name, cost FROM test LIMIT 10 

Para seleccionar diez registros desde una ubicación específica, puede utilizar LÍMITE 10, 100

SELECT name, cost FROM test LIMIT 100, 10 

Esto mostrará los registros 101-110

SELECT name, cost FROM test LIMIT 10, 100 

Esto mostrará los registros 11-11 1

Para asegurarse de que recupere los resultados correctos, asegúrese de que usted pide por los resultados también, de lo contrario las filas devueltas pueden ser aleatorios-ish

Puede leer más @http://php.about.com/od/mysqlcommands/g/Limit_sql.htm

+2

Personalmente, siempre uso un ORDER BY con un LIMIT para garantizar resultados consistentes y repetibles. –

+2

Creo que hay un error en su segundo ejemplo. En mis pruebas, 'LIMIT 10, 100' devuelve 100 registros, comenzando con el índice 11.' LIMIT 100, 10' devuelve 10 registros comenzando con el índice 101. – jatrim

+0

'LIMIT 10' devuelve menos de 10 registros en algún momento, por lo que esto no es correcto respuesta para mí, entonces ¿cómo puedo seleccionar exactamente 10 registros ?, no menos y más. Usé la línea de comando para ejecutar esta consulta 'limit', ejecuto esta consulta 8 veces en la 7ma vez que obtuve 8 registros, no 10 registros. – 151291

5

usted debe tener una ORDER BY cláusula cuando usa LIMIT, de modo que obtendrá el mismo conjunto de registros si lo llama dos veces seguidas y no se han modificado los datos.

Por lo tanto, hacer algo como:

select name, cost 
from test 
order by rowid 
limit 10; 
2
SELECT TOP(10) name, cost FROM test; 
+1

Disculpas: lee mysql como mssql. – adelphus

0

Esta consulta, puede obtener 10 primeros registros.

SELECCIONAR employee_id, first_name FROM employees LIMIT 10;

Cuestiones relacionadas