2009-11-07 17 views

risposta

12
SELECT * FROM clients ORDER BY id LIMIT 10; 
+4

Va notato che ORDER BY default è ASC, dove DESC è anche un'opzione, ma deve essere esplicitamente - 'ORDER BY id desc' – Sampson

4

Ecco tutto quello che puoi fare con un SELECT (tratto da here):

 
SELECT 
    [ALL | DISTINCT | DISTINCTROW ] 
     [HIGH_PRIORITY] 
     [STRAIGHT_JOIN] 
     [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT] 
     [SQL_CACHE | SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS] 
    select_expr [, select_expr ...] 
    [FROM table_references 
    [WHERE where_condition] 
    [GROUP BY {col_name | expr | position} 
     [ASC | DESC], ... [WITH ROLLUP]] 
    [HAVING where_condition] 
    [ORDER BY {col_name | expr | position} 
     [ASC | DESC], ...] 
    [LIMIT {[offset,] row_count | row_count OFFSET offset}] 
    [PROCEDURE procedure_name(argument_list)] 
    [INTO OUTFILE 'file_name' export_options 
     | INTO DUMPFILE 'file_name' 
     | INTO var_name [, var_name]] 
    [FOR UPDATE | LOCK IN SHARE MODE]] 

Quindi la dichiarazione che si sta cercando è:

SELECT * FROM clients ORDER BY id LIMIT 10 
2

Nota che OFFSET è molto utile per impaginare:

LIMIT 10 OFFSET 11

.210

per la seconda pagina 10.

0

Il modo MySQL consiste nell'utilizzare

SELECT * FROM clienti ORDER BY id LIMIT 10;

che è specifico per MySQL. Per molto tempo non vi è stata alcuna contropartita in altri database, ma lo standard SQL: 2008 introduce una sintassi aggiuntiva:

SELECT * DA client FETCH PRIMA 10 ROWS SOLO;

E

SELECT * FROM clienti OFFSET 1 FETCH NEXT 10 solo le righe;

Ma il problema è che questa sintassi non è ancora supportata da MySQL e dalla maggior parte degli altri database. Se ti interessa la portabilità dovresti seguire lo sviluppo lì.

Prego che si dovrebbero sempre clausole ORDER BY altrimenti il ​​risultato potrebbe essere casuale su diverse chiamate.

2

provare questo:

SELECT TOP 10 * FROM clients ORDER BY id 
Problemi correlati