2016-06-27 8 views
1

基本的に私の全質問はタイトルです。説明するのはあまりありません。私はちょうど昇順に並べられたSQLから最後の20行を選択したい。SQLから注文された最後の20行を選択しますASC

これは

SELECT * FROM chat ORDER BY id ASC LIMIT 20 

それは昇順に最初 20行を返す期待どおりに動作しませんが、私は昇順に最後 20行をしたいです。

ご迷惑をおかけして申し訳ございません。

UPDATE

何私のSQLは次のようになりますか?

SELECT username, text, date FROM chat ORDER BY id ASC LIMIT 20 
+0

タグ。 'LIMIT'は製品特有のものです – jarlh

答えて

1

1つのオプションは、必要な20個のレコードを提供するクエリを作成することです。これは、のクエリで、の降順でidに降順になります。次に、これをサブクエリにラップし、で注文中にの昇順を選択してidを選択することができます。ここで

SELECT t.* 
FROM 
(
    SELECT * 
    FROM chat 
    ORDER BY id DESC 
    LIMIT 20 
) t 
ORDER BY t.id ASC 

はあなたが試すことができた作業フィドルです:DBMSが使用

SQLFiddle

+0

私のSQLがこのように見えるようになったらどうすればいいですか?私はちょうど*から(私のSQLを続行)を選択する場合、それはエラーをスロー...なぜですか? 私の現在のSQL:SELECT username、text、date FROM chat ORDER BY id ASC LIMIT 20 –

+0

@StevenDropper申し訳ありませんが、私はSELECT t。* FROM(SELECT * ...)t ORDER BY t.ASC'と書いてください。おそらく外側の 'SELECT'でエイリアスを使う必要があります。 –

+0

更新された質問をご覧ください。 –

関連する問題