MySQL ГДЕ - Заказ - PullRequest
       19

MySQL ГДЕ - Заказ

1 голос
/ 09 апреля 2010

При использовании:

SELECT * FROM some_table WHERE id IN(4,2,1,3,5);

Получается следующий порядок:

1,2,3,4,5

Что можно сделать, чтобы вернуть результаты в том же порядке, в котором я их запрашивал?1008 * спасибо

Ответы [ 2 ]

7 голосов
/ 09 апреля 2010
SELECT *
FROM some_table
WHERE id IN(4,2,1,3,5)
ORDER BY FIELD (id, 4,2,1,3,5);

Подробнее о MySQL FIELD() функция

1 голос
/ 09 апреля 2010
SELECT *
FROM some_table 
WHERE id IN (4,2,1,3,5)
order by case id
    when 4 then 1
    when 2 then 2
    when 1 then 3
    when 3 then 4
    when 5 then 5
end 

или

SELECT * FROM some_table WHERE id = 4
union all
SELECT * FROM some_table WHERE id = 2
union all
SELECT * FROM some_table WHERE id = 1
union all
SELECT * FROM some_table WHERE id = 3
union all
SELECT * FROM some_table WHERE id = 5
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...