1. ホーム
  2. mysql

[解決済み] MySQLから最後のN行を選択する

2022-02-09 07:05:48

質問

MySQLデータベースから、以下のカラムで過去50行を選択したい。 id である。 主キー . 目標は、行を次の順序で並べ替えることです。 id ASC の順序で、このクエリが動作しない理由です。

SELECT 
    *
FROM
    `table`
ORDER BY id DESC
LIMIT 50;

また、行が操作される(削除される)可能性があることも注目すべき点で、そのため以下のクエリも機能しない。

SELECT 
    *
FROM
    `table`
WHERE
    id > ((SELECT 
            MAX(id)
        FROM
            chat) - 50)
ORDER BY id ASC;

質問 : MySQLデータベースから、操作可能でASC順の最後のN行を取り出すにはどうすればよいのでしょうか?

解決方法は?

サブクエリでできます。

SELECT * FROM (
    SELECT * FROM table ORDER BY id DESC LIMIT 50
) sub
ORDER BY id ASC

これは 最後の から50行 table で、昇順に並べます。