按asc发布的mysql订单

按asc发布的mysql订单,mysql,sql-order-by,Mysql,Sql Order By,我有一个应用程序,我们需要通过asc获得记录顺序,但记录为零的值将位于最后。 有人帮我处理这件事吗。 这是我的桌子结构 id name priority 1 abc 3 2 xyz 6 3 aaa 0 4 bbb 1 5 ccc 1 6 ddd 0 7

我有一个应用程序,我们需要通过asc获得记录顺序,但记录为零的值将位于最后。 有人帮我处理这件事吗。 这是我的桌子结构

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

尝试以下SQL:

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

除了丑陋之外,如果源表中存在重复行,此方法还将删除重复行。
SELECT * FROM (SELECT * FROM Table1 WHERE PRIORITY > 0 ORDER BY PRIORITY) a 
UNION 
SELECT * FROM Table1 WHERE PRIORITY = 0