Мне интересно, есть ли возможность (возможно, лучший способ) упорядочить по порядку значений в предложении IN ().
Проблема в том, что у меня есть 2 запроса, один из которых получает все идентификаторы, а второй - всю информацию. Первый создает порядок идентификаторов, по которым я хочу, чтобы второй упорядочил. Идентификаторы помещаются в предложение IN () в правильном порядке.
Так что это будет что-то вроде (очень упрощенно):
SELECT id FROM table1 WHERE ... ORDER BY display_order, name
SELECT name, description, ... WHERE id IN ([id's from first])
Проблема в том, что второй запрос не возвращает результаты в том же порядке, в котором идентификаторы вставлены в предложение IN ().
Одно решение, которое я нашел, состоит в том, чтобы поместить все идентификаторы во временную таблицу с автоматически увеличивающимся полем, которое затем присоединяется ко второму запросу.
Есть ли лучший вариант?
Примечание: Поскольку первый запрос выполняется «пользователем», а второй - в фоновом процессе, объединить запрос 2 в 1 с помощью подзапросов невозможно.
Я использую MySQL, но я думаю, что было бы полезно, чтобы он указывал, какие опции есть и для других БД.