MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQLでテーブルの最後の2行を取得する方法をわかりやすく解説

MySQLでテーブルの末尾(最後)の2行だけを取得したい場合は、ORDER BY句とDESC(降順)、そしてLIMIT 2を組み合わせるのが最もシンプルで確実な方法です。降順に並べ替えてから先頭2件を取り出すことで、結果的に「最後の2行」が得られます。

基本の構文

SELECT * FROM テーブル名 ORDER BY Id DESC LIMIT 2;

それでは、実際にサンプルテーブルを作成しながら手順を確認していきましょう。

1. サンプルテーブルを作成する

まず、以下のようにテーブルを作成します。

mysql> create table DemoTable763 (
    Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    FirstName varchar(100)
);
Query OK, 0 rows affected (0.57 sec)

2. レコードを挿入する

続いて、INSERT文を使って複数のレコードを登録します。

mysql> insert into DemoTable763(FirstName) values('John');
Query OK, 1 row affected (0.19 sec)
mysql> insert into DemoTable763(FirstName) values('Sam');
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable763(FirstName) values('Carol');
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable763(FirstName) values('David');
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable763(FirstName) values('Bob');
Query OK, 1 row affected (0.13 sec)

3. 全レコードを確認する

SELECT文ですべてのレコードを表示してみましょう。

mysql> select *from DemoTable763;

実行すると、以下のような結果が表示されます。

+----+-----------+
| Id | FirstName |
+----+-----------+
|  1 | John      |
|  2 | Sam       |
|  3 | Carol     |
|  4 | David     |
|  5 | Bob       |
+----+-----------+
5 rows in set (0.00 sec)

4. 最後の2行を取得するクエリ

ここで本題の「最後の2行」を取得するクエリを実行します。ORDER BY Id DESCでIDの降順(大きい順)に並べ替え、LIMIT 2で上位2件のみを取得します。

mysql> select *from DemoTable763 order by Id DESC LIMIT 2;

実行結果

+----+-----------+
| Id | FirstName |
+----+-----------+
|  5 | Bob       |
|  4 | David     |
+----+-----------+
2 rows in set (0.00 sec)

IDが5番目と4番目の、つまり挿入された順序で最も新しい2件のレコードが取得できました。

ポイントまとめ

  • ORDER BY カラム名 DESC:指定したカラムを降順に並べ替えます。AUTO_INCREMENTの主キーを使えば、挿入順に基づいた並び替えが可能です。
  • LIMIT 2:取得する行数を2行に制限します。この数値を変更すれば、最後の3行や5行など任意の行数を取得できます。

なお、降順で取得した結果を元の昇順に戻したい場合は、サブクエリを使って外側でもう一度ORDER BY Id ASCとすれば、見た目を自然な順序に整えることもできます。

  1. MySQLでテーブルの最後の10件のレコードを取得する方法

    MySQLでテーブルの末尾にある10行(最新の10件)を取得したい場合は、SELECT文とLIMIT句を組み合わせたサブクエリを利用します。この記事では、実際にテーブルを作成し、データを挿入しながら、最後の10件を取得するクエリの手順を具体的に解説します。 1. サンプルテーブルの作成 まず、動作確認用のテーブルを作成します。 mysql> create table Last10RecordsDemo -> ( -> id int, -> name varchar(100) -> ); Query OK, 0 rows affected

  2. MySQLのCONCAT_WS()関数で文字列を連結しながら条件に一致する行を抽出する方法

    MySQLのCONCAT_WS()関数とはMySQLでは、CONCAT_WS()関数を使用することで、複数のカラムや値を指定した区切り文字で連結できます。さらにWHERE句と組み合わせれば、条件に一致する行だけを抽出しながら、読みやすい形式の文字列として出力することも可能です。この記事では、実際にテーブルを作成し、CONCAT_WS()と条件指定を組み合わせたクエリの実行例を順番に解説します。サンプルテーブルの作成まず、ユーザー情報を格納するテーブル「demo38」を作成しましょう。mysql> create table demo38-> (-> user_id int,-&