按asc发布的mysql订单
我有一个应用程序,我们需要通过asc获得记录顺序,但记录为零的值将位于最后。 有人帮我处理这件事吗。 这是我的桌子结构按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
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