问题描述
MySQL 在排序时, 如何从小到大排序, 并将0排在最后面
如图:

解决办法
利用CASE THEN来处理, 原理是将sort等于0的转为比较大的数值放到了最后,其实也是遵循了 sort ASC 的原则.
SELECT * FROM `banner` ORDER BY CASE when sort<>0 then sort else 99999 end;
结果如图:

另外一种方法, 达到同样的效果:
SELECT * FROM `banner` ORDER BY sort = 0,sort;

转变举例: 0 放前面并从大到小排序
SELECT * FROM `banner` ORDER BY CASE when sort<>0 then sort else 99999 end DESC;

博客主要围绕MySQL排序问题展开,提出如何实现从小到大排序且将0排在最后面的问题。给出利用CASE THEN处理的解决办法,其原理是把sort等于0的转为较大数值放最后,还提及另一种能达同样效果的方法,以及0放前面并从大到小排序的转变举例。
617

被折叠的 条评论
为什么被折叠?



