Select по ID в заданном порядке @ DeForum.ru
DeДверь  
Логин:  
Пароль:  
  Автологин  
   
Разместить рекламу
Письмо админу
Правила | FAQ | *Поиск | Наша команда | Регистрация | Вход
 
 
 Страница 1 из 1 [ Сообщений: 3 ] 
*   Список форумов / Начинка и техника / Программирование для WWW » ответить » создать топик « | »
Автор Сообщение
Paul Yanchenko Муж.
новый человек
1
Сообщения: 112
Зарегистрирован: 05.02.04
Откуда: Екатеринбург
Заголовок сообщения: Select по ID в заданном порядке
Сообщение Добавлено: 11 Май 2008, 02:53:46 
Необходимо сделать выборку из таблицы БД строго определенных записей (WHERE `id` IN (1, 4, 34, 7, 15)) и при этом в строго определенном порядке. То есть в самой таблице нет никаких полей, по которым можно было бы отсортировать. Есть только последовательность ID'шников и именно в этой последовательности их нужно получить в ответе сервера на SELECT.

Задача: сделать это за один SELECT, не используя UNION'ов и временных таблиц. База данных MySQL5.0.

В частном случае для выборки двух полей можно было бы использовать скажем такую конструкцию с использованием IF():

Код:
SELECT *, IF(id=6,1,2) as `order`  FROM `posts`
WHERE id in (6, 8)
ORDER BY `order` ASC


Для случая трех записей можно было бы использовать вложенный IF(), но для 10 запией это извращение. Ищу простой и элегантный способ.
Crazy Муж.
Модератор
107
Сообщения: 14561
Зарегистрирован: 23.12.01
Откуда: Moscow
Сообщение Добавлено: 11 Май 2008, 03:15:19 
Сама постановки задачи -- извращение. Соответственно, нечего воротить нос от извратных решений (вложенные if'ы, case-when и т.п.)
Paul Yanchenko Муж.
новый человек
1
Сообщения: 112
Зарегистрирован: 05.02.04
Откуда: Екатеринбург
Сообщение Добавлено: 11 Май 2008, 14:18:07 
Спасибо. Пожалуй, при помощи CASE'а и сделаю.
*   Список форумов / Начинка и техника / Программирование для WWW « | » » ответить » создать топик
 Страница 1 из 1 [ Сообщений: 3 ] 
Показать сообщения за:   Поле сортировки  
Найти:
Перейти:  
Уровень доступа: Вы не можете начинать темы. Вы не можете отвечать на сообщения. Вы не можете редактировать свои сообщения. Вы не можете удалять свои сообщения. Вы не можете добавлять вложения.
cron


ООО ДеФорум
При использовании материалов сайта ссылка на DeForum.ru — обязательна.
Проект Павла Батурина ©2001-2077; // Powered by phpBB © 2013 phpBB Group
Rambler's Top100