首頁 >資料庫 >mysql教程 >如何有效率地從帶有日期的 MySQL 表中檢索最新記錄?

如何有效率地從帶有日期的 MySQL 表中檢索最新記錄?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-12-24 09:43:14150瀏覽

How to Efficiently Retrieve the Most Recent Records from a Dated MySQL Table?

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

為某個方法和 id 的所有現有組合選擇最新回應MySQL表的結構:

Table: rpc_responses

timestamp   (date)
method      (varchar)
id          (varchar)
response    (mediumtext)

PRIMARY KEY(timestamp,method,id)

考慮以下內容步驟:

  1. 建立子查詢以選擇分組:

    SELECT *,
    if(@last_method=method,0,1) as new_method_group,
    @last_method:=method AS t1
    FROM rpc_responses
    ORDER BY method,timestamp DESC
    • @last_method 變數初始化為空字串。
    • if() 語句建立一個 new_method_group 資料列,指示具有相同方法值的新行組。
  2. 篩選每組中的第一行:

    WHERE new_method_group=1

    此條件確保只有方法和時間戳的每個組合的最新行才是

  3. 選擇所需的欄位:

    SELECT timestamp, method, id, response
    FROM t1

此查詢將傳回所需的結果集,其中包括所有現有方法和ID 組合的最新回應。它很高效,因為它避免使用連接並利用 MySQL 變數來追蹤不同方法組之間的轉換。

以上是如何有效率地從帶有日期的 MySQL 表中檢索最新記錄?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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