簡體   English   中英

Mysql 區分一列但不是每一列

[英]Mysql Distinct one column but not every column

我有一張表格(汽車、年份和型號的列表),我試圖僅顯示年份列表,但是制造商制造汽車的年份列表可能很大。 意思是當我查詢“沃爾沃”時,我會返回沃爾沃制造汽車的所有年份的列表,使用:

"SELECT id, year FROM `models_auto` WHERE `make`=? ORDER BY `year` DESC;"

然而,沃爾沃那一年可能已經生產了 50 輛汽車,而回報是所有 50 年的重復年份。 我只想返回唯一的年份列表,而不是重復的。 我看着 DISTINCT 但使用:

"SELECT DISTINCT id, year FROM `models_auto` WHERE `make`=? ORDER BY `year` DESC;"

仍然返回所有內容,因為 ID 是唯一的。 我怎么能只有不同的年份?

謝謝你。

如果您只想要年份,那么您可以使用GROUP BY

SELECT `year`
FROM `models_auto`
WHERE `make`=? 
GROUP BY `year`
ORDER BY `year` DESC;"

或使用DISTINCT

SELECT DISTINCT `year`
FROM `models_auto`
WHERE `make`=? 
ORDER BY `year` DESC;"

一種選擇是使用group_concat()將年份作為逗號分隔的列表返回:

select make, group_concat(distinct year order by year)
from models_auto
group by make;

暫無
暫無

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

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