| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > MySQL > Помогите составить запрос MySQL |
| Автор: arial 8.6.2004, 13:00 | ||
Есть таблица:
Есть скрипт постраничного вывода на РНР. Скрипт выдёргивает из таблицы по 10 (к примеру) записей на страницу, при этом запись с pin = 1 в верху каждой страницы. Как составить такой запрос в БД MySQL? |
| Автор: Akina 8.6.2004, 14:46 |
| делай union select-а с pin=1 и select-а следующих 9 строк |
| Автор: arial 8.6.2004, 15:03 |
| Я пробовал так: $sql = ' ( ' . ' SELECT * ' . ' FROM `table` ' . ' ORDER BY `date` DESC, `id` DESC ' . ' WHERE `pin` = 1 ' . ' ) UNION ( ' . ' SELECT * ' . ' FROM `table` ' . ' ORDER BY `date` DESC, `id` DESC ' . ' LIMIT 10, 10' . ' ) '; но выводит не 10 (к примеру) записей, а 10 + количество pin записей. Можно, конечно, скриптом всё сделать, но интересно силами MySQL. Вот можно было бы сделать типа такого: LIMIT 10, (10 - COUNT(`pin`)), но так, естественно, нельзя. |
| Автор: Akina 8.6.2004, 16:27 | ||
не помню, умеет мускул вложенные запросы? если да, то типа $sql = ' ( ' . ' SELECT * FROM' . '( SELECT * ' . ' FROM `table` ' . ' ORDER BY `date` DESC, `id` DESC ' . ' WHERE `pin` = 1 ' . ' ) UNION ( ' . ' SELECT * ' . ' FROM `table` ' . ' ORDER BY `date` DESC, `id` DESC ' . ' ) ' . ' ORDER BY pin DESC' . ' LIMIT 10, 10)'; |
| Автор: arial 8.6.2004, 16:42 |
| К сожалению MySQL не поддерживает вложенные запросы. :-( |
| Автор: MuToGeN 9.6.2004, 11:57 | ||
|