|
|
|
|
|
для: garold
(23.06.2010 в 12:23)
| | Вот, то, что я и хотел.
Спасибо огромное | |
|
|
|
|
|
|
|
для: garold
(23.06.2010 в 12:15)
| | SELECT * FROM users WHERE user_id IN (22,34,11,9,4) ORDER BY FIND_IN_SET(user_id,'22,34,11,9,4') | |
|
|
|
|
|
|
|
для: Axxil
(23.06.2010 в 11:38)
| | ORDER BY FIND_IN_SET() | |
|
|
|
|
|
|
|
для: sms-send
(23.06.2010 в 11:01)
| | >> А чем определяется именно такой порядок?
Выборкой из дркгой таблицы. Чтоб не цеплять JOINом огромную таблицу к без того приличному запросу, я делаю выборку ID пользователей и потом этот массив использую в качестве условия.
Это только пример. Количество значений в конструкции IN может быть гораздо больше. Так что CASE не пройдёт.
>> Если сильно захочется сделать костыль
Костыль как раз в том, чтобы сортировать результат выборки средствами PHP. Я спросил, потому что думал может есть какая-то хитрая возможность сортировки о которой я не знаю. | |
|
|
|
|
|
|
|
для: Axxil
(23.06.2010 в 10:40)
| | А чем определяется именно такой порядок?
Проще в вызывающем сценарии собрать в массив и обрабатывать в нужном порядке.
Если сильно захочется сделать костыль, но повесить сортировку на СУБД, то:
SELECT *
FROM users
WHERE user_id IN (22,34,11,9,4)
ORDER BY
CASE `id_new`
WHEN 22 THEN 1
WHEN 34 THEN 2
WHEN 11 THEN 3
WHEN 9 THEN 4
WHEN 4 THEN 5
END
|
| |
|
|
|
|
|
|
| Есть запрос:
SELECT * FROM users WHERE user_id IN (22,34,11,9,4)
|
Как бы сделать так, чтобы сортировка была по полю user_id в том порядке в каком значения идут в условии 22,34,11,9,4 ? | |
|
|
|
|