MySQLで最後の行(レコード)を取得する方法をわかりやすく解説
MySQLで最後の行を選択する基本の考え方
MySQLでテーブルの最後の行(最終レコード)を取得したい場合、ORDER BY句に降順(DESC)を指定し、LIMIT 1と組み合わせるのが最も一般的で効率的な方法です。
この記事では、実際にテーブルを作成してデータを挿入しながら、最後のレコードを取得する手順を具体的なクエリ例とともに解説します。
サンプルテーブルの作成
まず、CREATE TABLE文を使ってテスト用のテーブルを作成します。
mysql> create table getLastRecord -> ( -> Id int, -> Name varchar(100) -> ); Query OK, 0 rows affected (0.61 sec)
テストデータの挿入
次に、INSERT文を使って複数のレコードを挿入していきます。
mysql> insert into getLastRecord values(1,'John'); Query OK, 1 row affected (0.13 sec) mysql> insert into getLastRecord values(2,'Ramit'); Query OK, 1 row affected (0.22 sec) mysql> insert into getLastRecord values(3,'Johnson'); Query OK, 1 row affected (0.13 sec) mysql> insert into getLastRecord values(4,'Carol'); Query OK, 1 row affected (0.79 sec)
登録済みデータの確認
SELECT文ですべてのレコードを表示してみましょう。
mysql> select * from getLastRecord;
実行結果は以下の通りです。
+------+---------+ | Id | Name | +------+---------+ | 1 | John | | 2 | Ramit | | 3 | Johnson | | 4 | Carol | +------+---------+ 4 rows in set (0.00 sec)
この時点で、最後のレコードは「Id:4、Name:Carol」であることが確認できます。
ORDER BY句とLIMITで最後のレコードを取得する
最後のレコードを取得するには、Id列を降順(DESC)で並べ替え、先頭の1件だけを取得します。具体的には以下のクエリを実行します。
mysql> select * from getLastRecord ORDER BY id DESC LIMIT 1;
実行結果は以下の通りです。
+------+-------+ | Id | Name | +------+-------+ | 4 | Carol | +------+-------+ 1 row in set (0.00 sec)
出力結果から、Idが4でNameがCarolの、テーブル内で最後に挿入されたレコードが正しく取得できていることがわかります。
補足:AUTO_INCREMENT列を使う場合の注意点
Id列にAUTO_INCREMENTを設定している場合は、削除されたIDがあると必ずしも最大値が「最後に挿入されたレコード」とは限りません。そのようなケースでは、LAST_INSERT_ID()関数やタイムスタンプ列を活用すると、より正確に最新レコードを特定できます。
まとめ
- ORDER BY 列名 DESC LIMIT 1 を使えば、MySQLで簡単に最後の行を取得できる
- 降順ソート+1件取得というシンプルな組み合わせがポイント
- AUTO_INCREMENTや削除済みIDがある場合は、取得方法の見直しも検討する
-
MySQLでバッチ挿入(一括INSERT)を行う方法をわかりやすく解説
MySQLでバッチ挿入(一括INSERT)を行う方法MySQLで複数のレコードを一度に挿入する「バッチ挿入(一括挿入)」を行うには、INSERT文のVALUES句の後に、各行の値を括弧( )で囲み、カンマ(,)で区切って列挙します。この方法を使えばINSERT文を何度も実行する必要がなく、データベースとの通信回数が減るため、大量データを扱う際のパフォーマンス向上も期待できます。実際の例を見ていきましょう。まずはテーブルを作成します。1. テーブルの作成以下は、テーブルを作成するためのCREATE文です。 ); Query OK, 0 rows affected (0.88 sec)2. バッチ
-
MySQLでテーブルの最後の10件のレコードを取得する方法
MySQLでテーブルの末尾にある10行(最新の10件)を取得したい場合は、SELECT文とLIMIT句を組み合わせたサブクエリを利用します。この記事では、実際にテーブルを作成し、データを挿入しながら、最後の10件を取得するクエリの手順を具体的に解説します。 1. サンプルテーブルの作成 まず、動作確認用のテーブルを作成します。 mysql> create table Last10RecordsDemo -> ( -> id int, -> name varchar(100) -> ); Query OK, 0 rows affected