2011-04-14 44 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