Мне нужно получить данные из таблицы MySQL в порядке возрастания, но нулевые значения идут последними и случайным образом
Прямо сейчас это мой заказ по условию. Это не работает
ORDER BY sortorder=0 RAND(),sortorder
Используйте условный порядок
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())
Если вы хотите получить данные из mysql в случайном порядке и нулевые значения будут последними. Вы можете попробовать следующее:
SELECT * FROM table ORDER BY `column` = 0, rand();