Сортировать столбец по возрастанию, но я хочу, чтобы 0 шел последним и СЛУЧАЙНО использовался mysql

Мне нужно получить данные из таблицы MySQL в порядке возрастания, но нулевые значения идут последними и случайным образом

Прямо сейчас это мой заказ по условию. Это не работает

ORDER BY sortorder=0 RAND(),sortorder

-1

Решение

Используйте условный порядок

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

Добавьте rand () в конце

демонстрация

Или вы могли бы использовать union

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

демонстрация

2

Другие решения

Если вы хотите получить данные из mysql в случайном порядке и нулевые значения будут последними. Вы можете попробовать следующее:

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

По вопросам рекламы [email protected]