排序列升序,但我希望0来到最后,并使用mysql随机

时间:2018-06-10 11:23:19

标签: php mysql random-data

我需要按升序从MySQL表中获取数据,但零值最后一次随机

现在这是我的条件顺序。这不起作用

ORDER BY sortorder=0 RAND(),sortorder

2 个答案:

答案 0 :(得分:2)

使用条件排序

select *
from table
order by column > 0 desc, column asc, rand()

在最后添加rand()

Demo

或者您可以使用union

(select * from table where column > 0 order by column asc)
union all
(select * from table where column = 0 order by rand())

Demo

答案 1 :(得分:0)

如果你想从mysql中随机获取数据,那么零值就是最后的。您可能想尝试以下方法:

SELECT * FROM table ORDER BY `column` = 0, rand();