LINUX.ORG.RU

mysql, вроде простая проблема..


0

0

имеем набор id;
допустим 2,55,59,47,56
по этим id нужно получить данные о пользователях, но
необходимо что бы они вернулись в таком же порядке как мы указываем id
те, имеем:
mysql> select id from users where id in (2,55,59,47,56) order by null;
+----+
| id |
+----+
| 2 |
| 47 |
| 55 |
| 56 |
| 59 |
+----+
5 rows in set (0.00 sec)

mysql>

а хотим иметь:
+----+
| id |
+----+
| 2 |
| 55 |
| 59 |
| 47 |
| 56 |
+----+

и никак ничего не могу с order by придумать что бы заработало,
может быть подскажите чего ?

спасибо


Ответ на: комментарий от hose

я чего-то криво прочитал, подумал, что ты хочешь сделать так, как было бы без order by:) а нужно выдать результат по "id in (2,55,59,47,56)"? мне кажется, так нельзя.

portalgun
()

откуда появляется последовательность 2,55,59,47,56? Я имею в виду, считывается, скажем, откуда-то, из другой таблицы, напр., или вводится кем-то, или еще как-то?

Tupoy_Wenduzyatneg
()

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

xpahos ★★★★★
()
Ответ на: комментарий от Tupoy_Wenduzyatneg

>а можно узнать от какого положения луны зависит порядок сортировки ?
читайте внимательней топик, плз.

>откуда появляется последовательность 2,55,59,47,56?
это выборка случ. образом из другой таблицы.

hose
() автор топика
Ответ на: комментарий от gods-little-toy

>gods-little-toy

мда...

спасибо ((

hose
() автор топика
Ответ на: комментарий от gods-little-toy

> select id from users where id in (2,55,59,47,56) order by case when 2 then 1 when 55 then 2 when 59 then 3 when 47 then 4 ... end;

Мда.

(SELECT id FROM users WHERE id = 2)
UNION
(SELECT id FROM users WHERE id = 55)
UNION
(SELECT id FROM users WHERE id = 47)
UNION
(SELECT id FROM users WHERE id = 56)

sjinks ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.