В MySQL у меня SQL похож на
select id from user where id IN (2, 3, 1);
Но MySQL возвращает строку как 1, 2, 3, возможно ли заставить MySQL вернуть такой же порядок, как мой исходный заказ 2, 3, 1?
Спасибо.
Вы можете использовать функцию FIELD:
FIELD
select id from user where id IN (2, 3, 1) ORDER BY FIELD(id, 2, 3, 1);
Для переносимого кода используйте CASE/WHEN. Поддерживается всеми (основными) базами данных.
CASE/WHEN
order by case when id = 2 then 1 when id = 3 then 2 when id = 1 then 3 end
Вы также можете заказать по месту нахождения, как это:
SELECT `id` FROM `user` WHERE `id` IN(2, 3, 1) ORDER BY LOCATE(`id`, "2 3 1")
Феликс