2011-04-14 74 views
0

我有这样mysql的排序问题与ORDER BY

d 1 
b 3 
a 5 
c 2 
c 4 
c 6 

表时,我写SELECT DISTINCT c1 FROM table ORDER BY c2它采取C值,并返回6形式C2;

d 
b 
a 
c 

但我想它返回

d 
c 
b 
a 

我怎么能这样做?

编辑:
其实c2是日期列。

回答

0

SELECT c1 FROM table GROUP BY c1 ORDER BY MIN(c2)

+0

O.P.它已经有最大的c2,他希望最小的c2 – diEcho 2011-04-14 07:38:25

+0

好点先生,今天早上我的大脑还有点早。谢谢 – Harold 2011-04-14 08:06:18

+0

没有工作:/ – agathery 2011-04-16 06:15:00

0

TRY INSTEAD OF

SELECT DISTINCT c1 FROM table ORDER BY c 

SELECT c1, MIN(c2) AS minC2 FROM table GROUP BY c1 ORDER BY c2 
+0

多数民众赞成没有工作,因为实际上c2是日期创建的时间戳类型。 – agathery 2011-04-14 07:49:22

+0

@agathery我更新了我的答案..现在 – diEcho 2011-04-14 08:01:20

+0

没有再次工作,它返回排序C1是一个B C D – agathery 2011-04-14 08:05:42

0
SELECT c1 
FROM 
(SELECT c1, c2 FROM tbl GROUP BY c1 ORDER BY c1, c2) X 
ORDER BY c2 

使MySQL的使用有序GROUP BY收集,内部查询将只挑最小的C2记录不明确使用MIN。外部查询然后按(min)c2值正确排序。

+0

没有工作:/ – agathery 2011-04-16 06:15:16