Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: UNION ORDER и LIMIT
 
 автор: Ziq   (08.06.2006 в 23:06)   письмо автору
 
 

Необходимо выбрать элемент с 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

   
 
 автор: Trianon   (09.06.2006 в 10:01)   письмо автору
 
   для: Ziq   (08.06.2006 в 23:06)
 

Вы же сами и свели. Вторым вариантом. Только Limit до пяти увеличить.

   
 
 автор: Ziq   (09.06.2006 в 19:59)   письмо автору
 
   для: 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, то он пытается отсортировать уже с объединением, а мне нужно до объединения.

   
 
 автор: Trianon   (09.06.2006 в 20:20)   письмо автору
 
   для: Ziq   (09.06.2006 в 19:59)
 

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

   
 
 автор: Ziq   (09.06.2006 в 23:06)   письмо автору
 
   для: Trianon   (09.06.2006 в 20:20)
 

Каким образом это можно сделать?

   
 
 автор: Trianon   (10.06.2006 в 15:08)   письмо автору
 
   для: Ziq   (09.06.2006 в 23:06)
 

см http://softtime.ru/forum/read.php?id_forum=3&id_theme=18559

   
 
 автор: Ziq   (11.06.2006 в 19:18)   письмо автору
 
   для: Trianon   (10.06.2006 в 15:08)
 

Что-то не понял к чему, там нет примера на подобие? Может я что не так понял, я в MySQL не особо-то? Напишите, пожалуйста, пример запроса.

   
 
 автор: Ziq   (12.06.2006 в 20:44)   письмо автору
 
   для: Ziq   (11.06.2006 в 19:18)
 

Up

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования