MySQL按0排序,然后再按最大值排序。

4

我希望进行一次MySQL排序,首先显示0,然后按最大数排序。

我的当前MySQL语句返回:

10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, 0, 0, 0

但我想要得到这个。

0, 0, 0, 0, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1

如何构建一个MySQL查询,使得整数从大到小排序,但是将0放在最前面?


@bernie 你说使用 case 语句是什么意思?你能指引我找到那个重复的问题吗?我没找到。 - Robert E. McIntosh
其实,看起来Gordon提供了一个更优秀的解决方案。我已经删除了我的先前评论。祝你编程愉快。 - mechanical_meat
2个回答

11

尝试使用这个 order by 语句:

order by val = 0 desc, val desc

第一部分是一个布尔值,当数值为1时评估为"1",否则为0。第二部分将其余数值按降序排列。


3

你需要使用两个过滤器。

select * from mytable
order by mycolumn=0 desc, mycolumn desc

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接