2013-04-09 74 views
3

可以說我有表numbers與現場num INTMySQL的數量訂購

條目:

364 
0 
123 
0 
321 
4215 
12138 

我想對它們進行排序ASC。事情是我想把零置於底部。

我要的是非常

SELECT num FROM number WHERE num != 0 ORDER BY num ASC 
SELECT num FROM number WHERE num = 0 

這可能在某種程度上1個單查詢做?

我想實現這一目標是:

123 
321 
364 
4215 
12138 
0 
0 

我不知道這是可能的,是問原因。謝謝。

回答

5

在order by子句中添加這種情況下,

ORDER BY (num = 0) ASC, num ASC 

,或者你可以在默認情況下省略ASC它,

ORDER BY (num = 0), num 

輸出

╔═══════╗ 
║ NUM ║ 
╠═══════╣ 
║ 123 ║ 
║ 321 ║ 
║ 364 ║ 
║ 4215 ║ 
║ 12138 ║ 
║  0 ║ 
║  0 ║ 
╚═══════╝ 
3
SELECT num FROM number ORDER BY IF(num=0,1,0),num;