2009-11-07 2 views

答えて

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

はDESCもオプションですが、明示的に指定する必要がありますASCデフォルトは、BY ORDERことに留意すべきである - 'ID BY ORDERをDESC' – Sampson

4

ここでは、(hereから取られた)SELECTで行うことができますすべてです:

 
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]] 

だからあなたが探している文は次のとおりです。OFFSET

SELECT * FROM clients ORDER BY id LIMIT 10 
2

注意は非常に有用ですページめくりする:

リミット10オフセット11

0

の2ページ目のMySQLの方法は、ID LIMIT 10によりクライアント順序と

SELECT *を使用することです。

これはMySQLに固有です。長い間、他のデータベースには対応がありませんでしたが、SQL:2008標準では、次のような構文が追加されています。

SELECT * FROMクライアントは最初の10行をFETCHします。クライアントからの

そして

SELECT * 1は、ONLY次の10行をフェッチOFFSET。

しかし、問題は、この構文がMySQLや他のほとんどのデータベースでサポートされていないことです。あなたが移植性に気を使う場合は、そこでの開発に従うべきです。

常にORDER BY句を使用すると、異なる呼び出しで結果がランダムになることがあります。

2

これを試してみてください。

SELECT TOP 10 * FROM clients ORDER BY id 
関連する問題