选择 MySQL 中的最新记录

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

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

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

MySQL 使用 MAX() 方法帮助我们执行此操作。让我们了解这种方法是如何工作的。

在我们开始之前,我们必须通过创建一个表 student_details 来创建一个虚拟数据集。

-- create the table Student_Registration
CREATETABLEStudent_Registration(sample_idintNOTNULL,sample_nameVARCHAR(20),sample_tsTIMESTAMP);-- insert rows to the table Student_Registration
INSERTINTOStudent_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*FROMStudent_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 列中具有最新条目的学生。

SELECTMAX(sample_ts)ASmost_recent_registrationFROMStudent_Registration;

输出:

most_recent_registration
2019-01-01 00:00:01

因此,正如我们在上面的代码块中看到的那样,我们可以在 sample_ts 列的帮助下访问最新的时间戳条目。这种技术的替代方法是在 MySQL 中使用 ORDER BY DESC 子句并将值限制为 1

可以通过以下查询更深入地理解它。

SELECT*FROMStudent_RegistrationORDERBYsample_tsDESCLIMIT1;

上面的代码将获取与最新记录关联的所有列。

输出:

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

因此,在时间戳列旁边的 MAX 函数或 ORDER BY DESC 子句的帮助下,我们可以有效地从 MySQL 中的表中选择最近的记录。