選擇 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