首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 使用 DISTINCT 與 GROUP BY 查詢不重複記錄並保留 ID 排序

     編輯:MySQL 資料庫相關知識

問題場景

表結構:id(PK)、f_id(FK)、value。需取得不重複的 f_id 且結果包含 id 並按 id DESC 排序。

單純 SELECT DISTINCT f_id 或 GROUP BY f_id 易辦,但加入 id 排序會亂。Google 方案多不可用。

解決方案

在 SELECT 中對 id 做聚合運算(MAX/MIN/AVG/SUM),讓 MySQL 知道如何處理:

SELECT f_id, MAX(id) AS id FROM table GROUP BY f_id ORDER BY id DESC;

關鍵點

  • 必須加 AS id 別名,否則部分 MySQL 版本結果錯誤。
  • 聚合函數可依業務需求選 MAX/MIN 等。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved