MySQL データベースから最後の N 行を取得しようとする場合、昇順に並べるのは難しい場合があります。行を操作できる場合、標準の DESC 順序は失敗します。同様に、WHERE 句を使用して、最大 ID から N を引いた値より大きい ID を持つ行を選択すると、行が削除されると失敗する可能性があります。
これらの課題を克服するには、サブクエリを使用できます。
SELECT * FROM ( SELECT * FROM table ORDER BY id DESC LIMIT 50 ) AS sub ORDER BY id ASC;
このクエリは、まず、LIMIT 句を使用して、「table」テーブルから最後の 50 行を降順で選択します。このサブクエリの結果は、「サブ」テーブルに保存されます。最後に、サブクエリ自体は「id」列によって昇順に並べられます。
サブクエリを使用することにより、最後の N 行の選択が順序付けプロセスから分離されます。これにより、元のテーブルに行が追加または削除された場合でも、最後の N 行が常に選択されるようになります。サブクエリの内部クエリでは行が降順に並べられ、外部クエリではサブクエリの結果が昇順に並べられます。
以上がMySQL から最後の N 行を昇順で取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。