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

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

Mary-Kate Olsen
發布: 2024-12-18 18:40:19
原創
228 人瀏覽過

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板