0

テーブルで最新の 5 つのレコードを取得したいのですが、これまで試してみましたが、うまくいきませんでした。では、テーブルの最後の 5 つのレコードを取得する最もクリーンで効率的な方法は何ですか?

"select * from (select * from People order by Date DESC limit 5) order by Date ASC;" 
4

1 に答える 1

0

あなたのクエリは問題なく動作します。

Date効率的にするために、列に索引があることを確認してください。その場合、SQLite はインデックスとテーブルから最後の 5 つのエントリを読み取るだけで、テーブル全体をスキャンする必要はありません。

このテーブルに自動インクリメント ID 列があり、「最新」が挿入順序を意味する場合、その ID を並べ替えに使用できます。これは、次のインデックスを使用した元のクエリと同じくらい効率的Dateです。

SELECT * FROM (SELECT * FROM People
               ORDER BY _id DESC
               LIMIT 5)
ORDER BY Date ASC
于 2013-02-23T21:59:03.333 に答える