Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Приоритет при сортировке результатов Select-запроса (http://forum.oszone.net/showthread.php?t=207748)

evg64 28-05-2011 17:40 1684165

Приоритет при сортировке результатов Select-запроса
 
Добрый день! Допустим, есть таблица Table1 с 1 столбцом (ID) и 4000 строк, где значения ячеек - числа от 1 до 4000. Пишется запрос:
Код:

Select ID from Table1 where ID>200 and ID<500 or ID>900 and ID<1500 or ID>3000 and ID<3300
В запросе выбираются значения из 3-х интервалов: [200;500], [900;1500], [3000;3300]. Как задать разный приоритет интервалам при сортировке результатов поиска? Например, сначала [900;1500], потом [200;500], потом [3000;3300]. Специально привожу именно такую последовательность, чтобы нельзя было воспользоваться оператором "order by", т.к. он не подходит для реальной задачи.

Coutty 28-05-2011 18:41 1684194

Код:

(SELECT id FROM table1 WHERE id>900 AND id<1500 ORDER BY id asc)
UNION
(SELECT id FROM table1 WHERE id>200 AND id<500 ORDER BY id asc)
UNION
(SELECT id FROM table1 WHERE id>3000 AND id<3300 ORDER BY id asc)

Ну и при желании каждый из интервалов можно сортировать в обратном порядке.

Справка: http://www.mysql.ru/docs/man/UNION.html


Время: 17:53.

Время: 17:53.
© OSzone.net 2001-