首頁 >資料庫 >mysql教程 >如何從表格中選擇最近的 3 筆不同記錄?

如何從表格中選擇最近的 3 筆不同記錄?

Linda Hamilton
Linda Hamilton原創
2024-12-01 04:59:09717瀏覽

How to Select the 3 Most Recent Distinct Records from a Table?

選擇最近的不同記錄

您的查詢旨在從表中檢索 otheridentifier 列中的值不同的三個最新記錄。然而,目前使用 GROUP BY 和 LIMIT 的方法會產生意想不到的結果。

讓我們檢查一下這個問題。 GROUP BY 操作將具有相同 otheridentifier 的行組合在一起。由於排序發生在分組之後,因此不一定會選擇每個組的最新記錄。

使用子查詢的解決方案

要解決此問題,可以使用子查詢來識別每個不同的其他識別碼的最新記錄。然後在主查詢中使用此資訊來選擇所需的記錄。

以下查詢實現此目的:

SELECT *
FROM `table`
WHERE `id` = (
    SELECT `id`
    FROM `table` as `alt`
    WHERE `alt`.`otheridentifier` = `table`.`otheridentifier`
    ORDER BY `time` DESC
    LIMIT 1
)
ORDER BY `time` DESC
LIMIT 3

解釋:

  • 子查詢取得每條唯一的最新記錄的id otheridentifier 。
  • 主查詢然後使用此 id 從原始表中擷取對應的記錄。
  • 記錄按時間降序排序,最近的 3 筆記錄受 LIMIT 3 限制。

使用此方法,查詢將傳回預期的結果:ids 5、4和2,代表最近的三個具有不同 otheridentifier 值的記錄。

以上是如何從表格中選擇最近的 3 筆不同記錄?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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