首頁 >資料庫 >mysql教程 >如何選擇特定列中具有唯一值的最近 3 筆記錄?

如何選擇特定列中具有唯一值的最近 3 筆記錄?

Susan Sarandon
Susan Sarandon原創
2024-12-02 12:06:18638瀏覽

How to Select the 3 Most Recent Records with Unique Values in a Specific Column?

如何為指定列選擇具有不同值的3 個最新記錄

為給定表選擇最新記錄是資料庫中的常見操作。但是,當您想要確保特定列的值不同並消除重複項時,它可能會變得更加複雜。此任務需要更細緻的方法。

在給定場景中,使用者嘗試從表中選擇三個最新記錄,其中 otheridentifier 列中的值不同。最初嘗試使用 SELECT * FROM table GROUP BY (otheridentifier) ORDER BY time DESC LIMIT 3 未能產生所需的結果,因為分組優先於 SQL 語句中的排序。

為了克服此限制,需要更詳細的查詢:

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

此查詢透過執行以下操作來執行步驟:

  1. 它使用子查詢來取得每個不同的otheridentifier 值的最新記錄的id。
  2. 然後主查詢將選擇限制為具有相應id 值的記錄.
  3. 最後,結果按照時間降序排列,僅限前三名

使用這種方法,使用者可以有效地選擇otheridentifier 欄位具有不同值的三個最新記錄,從而產生所需的結果。

以上是如何選擇特定列中具有唯一值的最近 3 筆記錄?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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