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