2016-05-24 4 views
1

SQLからいくつかの行を取得しようとしています。現在、私のクエリは、このようなものです:SQLで制限がある行のSELECTで行の順序が乱雑になる

SELECT * FROM logs ORDER by id ASC; 

これはすべて私の行を取得し、IDの小さい順に縦にそれらを印刷します:今

1 
2 
3 
4 etc etc. 

、問題は、私は下2への唯一の希望であります

3 
4 

しかし、私は別のコードを試しましたが、うまくいかないでしょう。

SELECT * FROM logs ORDER by id ASC DESC limit 10 

をしかし、これは、これを出力しますので、注文は再び間違っている:あなたの例を与えるために、私が試してみました!

4 
3 

みんなありがとうは

+1

また 'ASCのDESC'だけではなくどちらか' ASC'または 'DESC'を使用しています。 –

答えて

3

あなたは、サブクエリを使用することができます。

SELECT * 
FROM (
    SELECT * 
    FROM logs 
    ORDER BY id DESC 
    LIMIT 2 
) subquery 
ORDER BY id ASC 

サブクエリから選択する(この場合subqueryで)エイリアスを必要とすることに注意してください。それ以外の場合は、少なくともMySQLではエラーEvery derived table must have its own aliasが発生します。

+0

ダニエルはミスタイプでした。ありがとうマテューサッツは素晴らしかったです – Gram