|
|
|
| Необходимо выбрать элемент с id = x и еще 4-ре элемента, которые отсортированны по другому полю position.
Я делал это в два запроса
SELECT * FROM table WHERE id = x
SELECT * FROM table ORDER BY position LIMIT 4
|
Есть ли возможность свести все это в один запрос что-то типа
SELECT * FROM table WHERE id = x
UNION
SELECT * FROM table ORDER BY position LIMIT 4
|
| |
|
|
|
|
|
|
|
для: Ziq
(08.06.2006 в 23:06)
| | Вы же сами и свели. Вторым вариантом. Только Limit до пяти увеличить. | |
|
|
|
|
|
|
|
для: Trianon
(09.06.2006 в 10:01)
| | А вот и нет, в таком случае пишет, что нет поля position и пытается отсортировать все
Лучше станет понятней если написать код так
SELECT * FROM table ORDER BY position LIMIT 4
UNION
SELECT * FROM table WHERE id = x
|
Т.е. выбирается 4 по статусу и один по id. Просто нужно, чтобы первым был по id.
Когда в конце указываешь ORDER BY, то он пытается отсортировать уже с объединением, а мне нужно до объединения. | |
|
|
|
|
|
|
|
для: Ziq
(09.06.2006 в 19:59)
| | добавьте номер селекта в вывод, отсортируйте результат по двум полям. | |
|
|
|
|
|
|
|
для: Trianon
(09.06.2006 в 20:20)
| | Каким образом это можно сделать? | |
|
|
|
|
|
|
|
|
для: Trianon
(10.06.2006 в 15:08)
| | Что-то не понял к чему, там нет примера на подобие? Может я что не так понял, я в MySQL не особо-то? Напишите, пожалуйста, пример запроса. | |
|
|
|
|
|
|
|
для: Ziq
(11.06.2006 в 19:18)
| | Up | |
|
|
|