Легкий ответ:
инструмент данные с другим "упорядочивание" Int поле, а затем 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
@MattDiPasquale - У вас уже есть заказ в `1,3,2,9,7`, просто загрузите результаты для` 1,2,3,9,7` и установите его на основе порядка `1 , 3,2,9,7`. Любой язык программирования? – ajreal 2010-12-01 17:36:10
Я использую WordPress, PHP. Я хотел бы сделать все это в MySQL, так что мне не нужно выполнять какую-либо обработку на PHP. – ma11hew28 2010-12-01 18:03:20
@MattDiPasquale - `find_in_set` не быстрый и не очень оптимизированный. Сделать это на PHP быстрее и оптимизировано. – ajreal 2010-12-01 18:08:00