MySQL で最新のレコードを選択

Preet Sanghavi 2022年3月29日
MySQL で最新のレコードを選択

このチュートリアルでは、MySQL で最新のレコードを選択する方法を探ることを目的としています。

ユーザーの行動を理解したり、時系列データセットに対して探索的データ分析を実行したりする場合、エントリのタイムスタンプに基づいてデータをフィルタリングすることが非常に重要になります。このエントリのタイムスタンプは、特定の形式で MySQL に保存されます。

この形式は、yyyy-mm-dd HH:MM:SS として説明できます。ほとんどの企業では、データパケットに関連する問題をデバッグしようとしているときに、テーブル内の最新のレコードの 1つにアクセスする必要があります。

MySQL は、MAX() メソッドを使用してこの操作を実行するのに役立ちます。この方法がどのように機能するかを理解しましょう。

始める前に、テーブル student_details を作成してダミーデータセットを作成する必要があります。

-- create the table Student_Registration
CREATE TABLE Student_Registration
    (
        sample_id int NOT NULL,
        sample_name VARCHAR(20),
        sample_ts TIMESTAMP
    );
    
-- insert rows to the table Student_Registration
INSERT INTO Student_Registration
    (
        sample_id, sample_name, sample_ts
    )VALUES
    (1, 'Preet S', '2016-01-01 00:00:01'),
    (2, 'Dhruv M', '2017-01-01 00:00:01'),
    (3, 'Peter P', '2018-01-01 00:00:01'),
    (4, 'Martin G', '2019-01-01 00:00:01'); 

上記のクエリは、行が sample_idsample_name、登録タイムスタンプが sample_ts のテーブルを作成します。データのエントリを表示するには、次のコードを使用します。

SELECT * FROM Student_Registration;

出力:

sample_id	sample_name		sample_ts
1			Preet S			2016-01-01 00:00:01
2			Dhruv M			2017-01-01 00:00:01
3			Peter P			2018-01-01 00:00:01
4			Martin G		2019-01-01 00:00:01

最新の学生登録の sample_ts を取得してみましょう。これは、sample_ts 列を使用して実現できます。

MySQL で最新のレコードを選択

次のクエリは、sample_ts 列に最新のエントリがある学生を取得するのに役立ちます。

SELECT   
 MAX(sample_ts) AS most_recent_registration
FROM Student_Registration;

出力:

most_recent_registration
2019-01-01 00:00:01

したがって、上記のコードブロックでわかるように、sample_ts 列を使用して最新のタイムスタンプエントリにアクセスできます。この手法の代わりに、MySQL で ORDER BY DESC 句を使用し、値を 1 に制限することもできます。

次のクエリを使用すると、より深く理解できます。

SELECT *
FROM   Student_Registration
ORDER  BY sample_ts DESC
LIMIT  1;

上記のコードは、最新のレコードに関連付けられているすべての列をフェッチします。

出力:

sample_id	sample_name		sample_ts
4			Martin G		2019-01-01 00:00:01

したがって、タイムスタンプ列の横にある MAX 関数または ORDER BY DESC 句を使用すると、MySQL のテーブルから最新のレコードを効率的に選択できます。

著者: Preet Sanghavi
Preet Sanghavi avatar Preet Sanghavi avatar

Preet writes his thoughts about programming in a simplified manner to help others learn better. With thorough research, his articles offer descriptive and easy to understand solutions.

LinkedIn GitHub

関連記事 - MySQL Query