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

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

Mary-Kate Olsen
發布: 2024-12-24 09:43:14
原創
183 人瀏覽過

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

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