Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите составить запрос MySQL, подробности внутри 
:(
    Опции темы
arial
  Дата 8.6.2004, 13:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 772
Регистрация: 11.3.2003
Где: Архангельская обл .

Репутация: нет
Всего: 7



Есть таблица:

Код
id   pin   data
---------------
1    0     a
2    0     b
3    1     c
4    0     d
5    0     e
6    0     f
7    0     g
...
n    0     n


Есть скрипт постраничного вывода на РНР. Скрипт выдёргивает из таблицы по 10 (к примеру) записей на страницу, при этом запись с pin = 1 в верху каждой страницы. Как составить такой запрос в БД MySQL?


--------------------
Есть люди, в которых живет Бог. Есть люди, в которых живет дьявол. А есть люди, в которых живут только глисты. (Ф. Раневская)
PM ICQ   Вверх
Akina
Дата 8.6.2004, 14:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 106
Всего: 454



делай union select-а с pin=1 и select-а следующих 9 строк


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
arial
Дата 8.6.2004, 15:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 772
Регистрация: 11.3.2003
Где: Архангельская обл .

Репутация: нет
Всего: 7



Я пробовал так:
$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`)), но так, естественно, нельзя.


--------------------
Есть люди, в которых живет Бог. Есть люди, в которых живет дьявол. А есть люди, в которых живут только глисты. (Ф. Раневская)
PM ICQ   Вверх
Akina
Дата 8.6.2004, 16:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 106
Всего: 454



Цитата
можно было бы сделать типа такого: LIMIT 10, (10 - COUNT(`pin`)), но так, естественно, нельзя

не помню, умеет мускул вложенные запросы? если да, то типа

$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)';



--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
arial
Дата 8.6.2004, 16:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 772
Регистрация: 11.3.2003
Где: Архангельская обл .

Репутация: нет
Всего: 7



К сожалению MySQL не поддерживает вложенные запросы. :-(


--------------------
Есть люди, в которых живет Бог. Есть люди, в которых живет дьявол. А есть люди, в которых живут только глисты. (Ф. Раневская)
PM ICQ   Вверх
MuToGeN
Дата 9.6.2004, 11:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лесник
****


Профиль
Группа: Модератор
Сообщений: 4379
Регистрация: 15.8.2002
Где: Москва

Репутация: нет
Всего: 32



Цитата
К сожалению MySQL не поддерживает вложенные запросы
...в бесплатной версии



--------------------
Three pings for the token rings,
Five pings for the UNIX machines,
Hundred pings for the broken links,
One special ping to check them all
Through Simple Network Management Protocol!
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




[ Время генерации скрипта: 0.0528 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.