2010-09-20 3 views
1
SELECT id FROM films WHERE id IN (90,4,40) 

результатРезультаты поиска в подарок в определенном порядке?

4 
40 
90 

но я хочу вернуть 90,4,40 , что я должен делать? (MySQL)


ОГОРЧЕННО, но еще один вопрос:

SELECT, идентификатор из фильмов, где идентификатор (90,4,40) ORDER BY FIELD (id, 90, 4, 40) в порядке но правдиво

for ($i = 1; $i <10; $id ++){ 
    $IDarray[] = random(); 
} 


SELECT id FROM films WHERE id IN "(". implode(',',$IDarray). ") "; 

хочу заказ по ID, как указано выше, но идентификатор случайным образом, я хочу сохранить порядок случайном ID

ответ

3
ORDER BY CASE `id` WHEN 90 THEN 0 
        WHEN 4 THEN 1 
        WHEN 40 THEN 2 
        ELSE 3 
     END CASE 

ИЛИ

ORDER BY FIND_IN_SET(`id`, '90,4,40') 

ИЛИ

ORDER BY FIELD(`id`, 90, 4, 40) 
+0

я хочу знать, это может привести к медленным? если таблица содержит очень много полей – meotimdihia

+0

много полей? этот раздел может привести к ухудшению производительности, если у вас действительно есть ** много строк ** в результате, а не число полей – zerkms

+0

да, я ошибаюсь в строках с помощью fieds – meotimdihia

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