首頁 >資料庫 >mysql教程 >如何在MySQL中為每個方法和ID組合選擇最新記錄?

如何在MySQL中為每個方法和ID組合選擇最新記錄?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-12-18 18:40:19277瀏覽

How to Select the Latest Records for Each Method and ID Combination in MySQL?

如何從MySQL 表中擷取最新日期的記錄

在MySQL 表中儲存時間敏感資料時,通常需要擷取特定欄位組合的最新記錄。以下範例示範如何在處理具有時間戳記、方法和 ID 等欄位的 RPC 回應表時實現此目的。

問題

考慮一個名為rpc_responses具有以下結構:

CREATE TABLE rpc_responses (
  timestamp DATE,
  method VARCHAR,
  id VARCHAR,
  response MEDIUMTEXT,
  PRIMARY KEY (timestamp, method, id)
);

給出以下內容data:

timestamp method id response
2009-01-10 getThud 16 "....."
2009-01-10 getFoo 12 "....."
2009-01-10 getBar 12 "....."
2009-01-11 getFoo 12 "....."
2009-01-11 getBar 16 "....."

期望結果

獲取方法和id 的所有現有組合的最新回應清單:

timestamp method id response
2009-01-10 getThud 16 "....."
2009-01-10 getBar 12 "....."
2009-01-11 getFoo 12 "....."
2009-01-11 getBar 16 "....."

回答

要完成此任務,請利用以下查詢:

SELECT * 
FROM (
    SELECT *,
    IF(@last_method = method, 0, 1) AS new_method_group,
    @last_method := method 
    FROM rpc_responses 
    ORDER BY method, timestamp DESC
) AS t1
WHERE new_method_group = 1;

此查詢無需連接即可有效檢索所需結果。它還維護所需的行結構,為方法和 id 的每個唯一組合提供不同的記錄。

以上是如何在MySQL中為每個方法和ID組合選擇最新記錄?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn