2013-08-21 108 views
1

我有一個應用程序,我們需要通過asc獲取記錄順序,但零記錄值將在最後。 有沒有人幫助我。 這裏是我的表結構mysql按順序排序問題

id  name  priority 
1  abc    3 
2  xyz    6 
3  aaa    0 
4  bbb    1 
5  ccc    1 
6  ddd    0 
7  fff    2 

想是這樣的

id  name  priority 
1  bbb    1 
2  ccc    1 
3  fff    2 
4  abc    3 
5  xyz    6 
6  aaa    0 
7  ddd    0 

回答

2
SELECT * 
FROM mytable 
ORDER BY priority = 0, priority 

SQLFiddle demo

+0

感謝這麼多真正有用的 –

0

試試下面的SQL:

SELECT * FROM (SELECT * FROM Table1 WHERE PRIORITY > 0 ORDER BY PRIORITY) a 
UNION 
SELECT * FROM Table1 WHERE PRIORITY = 0 

SQL FIDDLE DEMO

+0

除了是醜陋的,這種方法也將他們是否在源表中存在刪除重複的行。 – mvp