簡體   English   中英

使用MySQL選擇按列分組的唯一行

[英]Select unique row grouped by column with MySQL

我的桌子看起來像:

ID | 類型
01 | 一種
02 | C
03 | b
04 | 一種
05 | b
06 | 一種

我想輸出按Type分組的最后添加的條目的ID ID是一個自動遞增的字段,因此最后添加的條目顯然是最高的數字。

SELECT * FROM `table` GROUP BY `Type` ORDER BY `ID` DESC, `Type` ASC

這將按類型對行進行分組,然后按ID排序,所以我得到ID 1,2,3,而我想先對THEN組排序以獲得結果:6,5,2

如果您的MySQL版本允許子選擇(而5.x允許),則應該可以:

SELECT * 
    FROM (SELECT * FROM `table` ORDER BY `id` DESC) AS tmp 
    GROUP BY `type` 
    ORDER BY `type` ASC;

這可能是您要尋找的...

SELECT   MAX(`ID`), `Type`
FROM     `table`
GROUP BY `Type`
ORDER BY `Type` ASC

讀取為為每個Type組選擇ID的最大值。

這是不帶子選擇的經典方式:

SELECT t1.* FROM table t1
LEFT JOIN table t2
  ON (t2.type = t1.type AND t2.id > t1.id)
WHERE t2.id IS NULL

讀取為“選擇表中的行,以使其他相同類型的行都沒有更大的id”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM