ORDER_BY cast(registration_no as unsigned) ASC
явно преобразует значение в число. Другой возможностью достичь этого будет
ORDER_BY registration_no + 0 ASC
, который заставит неявный разговор.
На самом деле вы должны проверить определение таблицы и изменить ее. Вы можете изменить тип данных на int
, как это
ALTER TABLE your_table MODIFY COLUMN registration_no int;