Главная Новые темы Список тем Задать вопрос Поиск  

Форум "DataBase и SQL" (архив)


Язык запросов баз даных


 #0 VictorT © 20.03.06 15:08:04 - 20.03.06 18:06:26

where in и order by



есть SQL-заппрос, в секции where которго используется in (например select * from table where id in (2,8,5,6)). Возможно ли как-то указать, чтоб сортировка результатов была в таком же самом порядке (2,8,5,6)? Цитата

 #1 Deep © 20.03.06 15:25:47

> сортировка результатов была в таком же самом порядке (2,8,5,6)?
создаешь дополнительную таблицу
Код  Значение
1 - 2
2 - 8
3 - 5
4 - 6

делаешь c ней  JOIN и сортируешь по нужному полю. Иначе, ИМХО, никак.
 #2 VictorT © 20.03.06 16:12:53

Не очень то удобно каждый раз создавать дополнительную таблицу... Да и дополнительное обьединение наверно замедлит работу для и так не лёгенького запроса. К тому же ещё придётся как-то решать проблему конфликтов одновременного доступа к таблице разными пользователями.
Если конкретизировать задачу - есть функция, в качестве параметра которой передаётся массив айдишек товаров. Функция должна вывести эти товары в том же порядке.
 #3 Deep © 20.03.06 16:27:00

> Функция должна вывести эти товары в том же порядке.
как варианты
1)несколько запросов равное количеству айдишек, но не думаю, что это будет быстрее.

2)сортировать уже полученную mysql-выборку клиентскими средствами. Если результирующие выборки небольшие -- то вполне реальный выход.
 #4 VictorT © 20.03.06 18:06:26

уже сделал по второму варианту




  • Тема находится в архиве

    Написать ответ

    Имя: Регистрация HTML?
    smiles смайлики
    Потом перейти в:    
    паутина



      ©  webest.net, 2002-2007  

    top.mail.ru
    » Бесплатный счетчик посещений
    » Рейтинг сайтов