2010-03-12 3 views
16

Можно создать дубликат:
Ordering by the order of values in a SQL IN() clauseС SELECT ... WHERE id IN (...), результаты заказа по IN()?

С запросом, например:

SELECT * FROM images WHERE id IN (12,9,15,3,1) 

это можно упорядочить результаты по содержанию пункта IN?

В результате я ищу будет что-то вроде:

[0] => Array 
    (
     [id] => 12 
     [file_name] => foo 
    ) 
[1] => Array 
    (
     [id] => 9 
     [file_name] => bar 
    ) 
[2] => Array 
    (
     [id] => 15 
     [file_name] => baz 
    ) 
... 
+0

+1 хороший вопрос – rodrigoap

+0

Очень интересный вопрос, я задавался вопросом тоже. – anthares

+0

Это может быть приятный вопрос, но это дубликат: http://stackoverflow.com/questions/396748/ordering-by-the-order-of-values-in-a-sql-in-clause –

ответ

5

Предложение IN определяет набор и набор в математике не имеет никакого порядка.

Однако, как представляется, обходной путь для MySQL с помощью функции FIELD():

+2

Да, это возможно, путем настройки SQL-запроса. См. Здесь: http://stackoverflow.com/questions/396748/ordering-by-the-order-of-values-in-a-sql-in-clause –

+0

@Felix: Спасибо за отзыв. Модифицировал мой ответ, чтобы сделать его более точным. –

+0

Удивительный, спасибо! – Jeff

Смежные вопросы