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

MySQLテーブルから新しく追加されたレコードを取得する方法

MySQLでテーブルに新しく追加されたレコードを取得するには、ORDER BY句とLIMIT句を組み合わせて使用します。AUTO_INCREMENTで採番される主キー(ID)を基準に降順(DESC)で並べ替え、LIMITで取得件数を指定することで、最新のレコードだけを効率的に取り出せます。

サンプルテーブルの作成

まず、CREATE TABLE文でテーブルを作成します。ここでは、自動採番される「StudentId」を主キーとする学生テーブルを用意しました。

mysql> create table DemoTable1486
    -> (
    -> StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> StudentName varchar(20)
    -> );
Query OK, 0 rows affected (0.66 sec)

レコードの挿入

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

mysql> insert into DemoTable1486(StudentName) values('Chris Brown');
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable1486(StudentName) values('David Miller');
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable1486(StudentName) values('John Doe');
Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable1486(StudentName) values('John Smith');
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable1486(StudentName) values('Adam Smith');
Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable1486(StudentName) values('Carol Taylor');
Query OK, 1 row affected (0.16 sec)

登録済みの全レコードを確認する

SELECT文ですべてのレコードを表示して、データの中身を確認しておきましょう。

mysql> select * from DemoTable1486;

実行結果は以下の通りです。

+-----------+--------------+
| StudentId | StudentName  |
+-----------+--------------+
|         1 | Chris Brown  |
|         2 | David Miller |
|         3 | John Doe     |
|         4 | John Smith   |
|         5 | Adam Smith   |
|         6 | Carol Taylor |
+-----------+--------------+
6 rows in set (0.00 sec)

新しく追加されたレコードを取得するクエリ

ここが本題です。ORDER BYで「StudentId」を降順に並べ替え、LIMIT 3を指定することで、直近に追加された3件のレコードを取得できます。

mysql> select * from DemoTable1486
    -> order by StudentId desc
    -> limit 3;

実行結果は以下の通りです。IDの大きい(=新しい)レコードから順に表示されています。

+-----------+--------------+
| StudentId | StudentName  |
+-----------+--------------+
|         6 | Carol Taylor |
|         5 | Adam Smith   |
|         4 | John Smith   |
+-----------+--------------+
3 rows in set (0.00 sec)

ポイント解説

  • order by StudentId desc:AUTO_INCREMENTで採番されるIDはレコードの追加順に増えていくため、降順に並べ替えると新しいレコードが先頭に来ます。
  • limit 3:取得するレコード数を指定します。この数値を変更すれば、任意の件数の最新レコードを柔軟に取得できます。
  • AUTO_INCREMENTのID列を持たないテーブルの場合は、DATETIME型など登録日時を記録したタイムスタンプ列を基準に並べ替えることで、同様に最新レコードを取得できます。
  1. MySQLで特定のID以外のレコードをすべて取得する方法|NOT EQUAL演算子(<>)の使い方

    MySQLのテーブルから特定のIDを持つレコードだけを除外して表示したい場合は、<>演算子(NOT EQUAL/不等価演算子)を使用します。この記事では、実際にテーブルを作成し、データを挿入しながら、特定のIDを除外したSELECT文の書き方を具体的な実行結果とともに解説します。1. サンプルテーブルの作成まず、以下のコマンドでテーブルを作成しましょう。mysql> create table DemoTable7 ( StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY, StudentName varchar(4

  2. MySQLでテーブルの日付レコードを変更する方法|UPDATEとDATE_ADD()の使い方

    MySQLで保存済みの日付データに年数を加算して変更したい場合、UPDATEコマンドとDATE_ADD()関数を組み合わせることで簡単に実現できます。ここでは、実際のSQLクエリ例を使いながら、日付レコードを変更する手順を順番に解説します。1. テーブルを作成するまず、日付型(date)のカラムを持つテーブルを作成します。mysql> create table DemoTable1984 ( ShippingDate date ); Query OK, 0 rows affected (0.00 sec)2. レコードを挿入する次に、INSERTコマンドを使ってテ