选择 MySQL 中的最新记录

Preet Sanghavi 2022年5月13日
选择 MySQL 中的最新记录

在本教程中,我们旨在探索如何在 MySQL 中选择最新的记录。

在了解用户行为或对时间序列数据集执行探索性数据分析时,基于入口时间戳过滤数据变得至关重要。此条目时间戳以特定格式存储在 MySQL 中。

这种格式可以表示为 yyyy-mm-dd HH:MM:SS。在大多数企业中,在尝试调试与数据包相关的问题时,访问表中最近的一条记录成为必要。

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