Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Базы Данных > mysql in - выбираем список


Автор: maxipub 9.12.2010, 17:22
Хэллоу.

Эм.... В общем, вопрос такой. Чисто ради интереса. Есть запрос вида:

Код

SELECT * FROM table WHERE id IN (1, 2, 3, 1)


Можно как-то сделать, чтоб в результате были не строчки с id 1, 2, 3, а именно 1, 2, 3, 1 ? smile

Автор: shurup_312 9.12.2010, 18:44
Цитата(maxipub @ 9.12.2010,  17:22)
Хэллоу.

Эм.... В общем, вопрос такой. Чисто ради интереса. Есть запрос вида:

Код

SELECT * FROM table WHERE id IN (1, 2, 3, 1)


Можно как-то сделать, чтоб в результате были не строчки с id 1, 2, 3, а именно 1, 2, 3, 1 ? smile

SELECT id FROM table WHERE id IN (1, 2, 3, 1)

тогда выбираем не всю строку а только id который у нас 1,2,3,1...

Автор: maxipub 9.12.2010, 19:07
shurup_312, ничего не понял. %)

Автор: ksnk 9.12.2010, 19:13
Код

SELECT * FROM table  , 
   (select 1 as num  union select 2 as num union select 3 as num union select 4 as num) as n
WHERE id=elt(num,1,2,3,1);

? Экое, однако, извращение  smile 

Кто-нибудь знает способ сгенерировать таблицу из 4 строчек более короткий, чем 4 селекта с юнитами?

Автор: maxipub 9.12.2010, 19:45
Цитата(ksnk @  9.12.2010,  19:13 Найти цитируемый пост)
? Экое, однако, извращение

Черт! Самое страшное в том, что оно работает smile  smile 
отличное решение, благодарю))

Автор: skyboy 9.12.2010, 22:53
Код

oredr by field(id, 1, 2, 3)


Добавлено через 16 секунд
регулярно вопрос на форуме поднимается, на самом деле.

Автор: ksnk 10.12.2010, 00:26
skyboy, Проблема в том, что нужно повторить строчку с начала результата и в конце. простыми средствами мне не удалось это получить...

Автор: skyboy 10.12.2010, 09:41
ага. я не заметил.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)