Простой ответ:
Снабдите свои данные другим полем int "ordering", а затем ORDER BY этим полем. Это должно быть все, что нужно в большинстве случаев. Я успешно сделал это, когда клиенты могут добавлять определенные продукты в список избранных и т. Д., Применяя низкие значения, такие как -1 или -99, в поле заказа.
Комплексный ответ:
Это применимо, если вы хотите нормализовать этот порядок, и, если, возможно, у вас есть другое поле в качестве второго фактора в порядке, это уже есть в вашей основной таблице. Это также поможет, если у вас есть другая информация, связанная с каждым пунктом заказа, например заметка. Или, если множество таблиц будет реализовывать этот произвольный порядок, и вы хотите организовать / изменить этот порядок из одного места.
Что бы вы сделали, это разместили «произвольный» порядок в таблице, к которой вы можете присоединиться, а затем упорядочили по этому полю:
SELECT t.*, o.ordering
FROM table_name AS t
LEFT JOIN table_name_ordering AS o ON t.ordering_id = o.id
ORDER BY o.ordering, t.other_field