2012-01-10 19 views
13

Come posso ottenere solo 10 record da una tabella in cui ci sono più di 1000 record. Ho una tabella di prova con rowid, nome, costo.Come selezionare N record da una tabella in mysql

select name, cost from test; 

qui voglio selezionare solo le prime 10 righe e non voglio selezionare il rowid.

risposta

23

Per selezionare i primi dieci record che è possibile utilizzare LIMIT seguito dal numero di record è necessario:

SELECT name, cost FROM test LIMIT 10 

Per selezionare dieci record da una posizione specifica, è possibile utilizzare LIMIT 10, 100

SELECT name, cost FROM test LIMIT 100, 10 

Ciò mostrare record 101-110

SELECT name, cost FROM test LIMIT 10, 100 

Ciò mostrare record 11-11 1

per essere sicuri di recuperare i risultati corretti, assicuratevi di ordinare i risultati troppo, altrimenti le righe restituite possono essere casuali-ish

Si può leggere di più @http://php.about.com/od/mysqlcommands/g/Limit_sql.htm

+2

Personalmente, utilizzerei sempre un ordine BY con LIMIT per garantire risultati coerenti e ripetibili. –

+2

Credo che ci sia un errore nel tuo secondo esempio. Nei miei test, 'LIMIT 10, 100' restituisce 100 record, a partire dall'indice 11.' LIMIT 100, 10' restituisce 10 record a partire dall'indice 101. – jatrim

+0

'LIMIT 10' restituisce meno di 10 record a volte, quindi non è corretto rispondi per me, quindi come posso selezionare esattamente 10 record ?, non di meno e di più. Ho usato la riga di comando per eseguire questa query 'limite', ho eseguito questa query per 8 volte alla 7a volta ho ottenuto 8 record non 10 record. – 151291

5

si dovrebbe avere un ORDER BY clausola quando si utilizza LIMIT, in modo da ottenere lo stesso recordset se lo si chiama due volte di seguito e nessun dato è cambiato.

Quindi, fare qualcosa di simile:

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

Scuse - leggi mysql come mssql. – adelphus

0

Questa query, è possibile ottenere i primi 10 record.

SELECT employee_id, first_name FROM employees LIMIT 10;

Problemi correlati