MySQL - 选择不同的2列并返回全部

时间:2014-03-05 01:30:56

标签: mysql select distinct

首先,我对MySQL比较陌生,在搜索SELECT DISTINCT之后我很困惑

我的情况如下:

我有一个包含多列和数百行的MySQL表。每行代表不同的产品(衬衫)。它看起来像这样(简化):

unique_id | model | color | slots | (...)
-----------------------------------
0943535   |  100  |  10   | ab
0943546   |  100  |  10   | ab
0943551   |  100  |  23   | ab
0943562   |  103  |  10   | fk
0943567   |  103  |  10   | fk
0943578   |  103  |  17   | fk
0943582   |  169  |  09   | dv
(...)

Unique_id表示唯一的商品编号。对于数据库中的每一行,该值都不同。

如果modelcolor相同,则2件衬衫相同。

就像这样,我想打印一个列表(PHP脚本),其中包含数据库中可用项目的所有列,但是(视觉上)相同的项目(相同的model和{{1 }}只显示一次。输出应该是这样的:

color

我被告知应该在sql查询中使用unique_id | model | color | slots | (...) ----------------------------------- 0943535 | 100 | 10 | ab 0943551 | 100 | 23 | ab 0943567 | 103 | 10 | fk 0943578 | 103 | 17 | fk 0943582 | 169 | 09 | dv (...) 来完成。

同样,我想要选择所有列,不包括相同Select distinctmodel的重复列。

请告诉我我的MySQL查询应该是什么样的。

非常感谢!

2 个答案:

答案 0 :(得分:2)

您可以简单地使用GROUP BY子句来解决您的问题..因此查询将是

SELECT * FROM table GROUP BY model, color

答案 1 :(得分:1)

我会改为使用group:

SELECT unique_id, model, color, slots FROM table_name GROUP BY model, color