Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Первый и х последних элементов 
:(
    Опции темы
fregs
Дата 3.11.2005, 15:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 72
Регистрация: 25.11.2004

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



нужно написать запрос в резулЬтате которого мне бы выдало первый элемент и 5 последних элементов
в 2 запроса можно написать так
select * from post where threadid=x and postid = y
select * from post where threadid=x limit 5 order by postid desc

а как сделать это одним запросом?
PM MAIL WWW   Вверх
-=Ustas=-
Дата 3.11.2005, 21:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


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

Репутация: 17
Всего: 69



Цитата(fregs @ 3.11.2005, 15:20)
в 2 запроса можно написать так
select * from post where threadid=x and postid = y
select * from post where threadid=x limit 5 order by postid desc

Ты сам то понял, что ты написал?

Цитата(fregs @ 3.11.2005, 15:20)
нужно написать запрос в резулЬтате которого мне бы выдало первый элемент и 5 последних элементов

Здесь по-моему все-таки придется использовать два запроса, первый будет возвращать общее количество, попадающее под условие, а второй уже использовать результаты первого.


--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
AntonioBanderaz
Дата 3.11.2005, 22:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Velichko Anton
**


Профиль
Группа: Участник
Сообщений: 851
Регистрация: 28.4.2005
Где: Санкт-Петербург

Репутация: 2
Всего: 18



Код

SELECT A1.*, A2.fieldname as first_field1 ...... , IF(A2.postid = y, 1, 0) as is_first
FROM post A1, post A2 
WHERE A2.threadid=x and A2.postid = y AND A1.threadid=x 
LIMIT 6 
ORDER BY A1.postid DESC


Не проверял, но попробуй....

Это сообщение отредактировал(а) AntonioBanderaz - 3.11.2005, 22:45


--------------------
ГЫ... 
PM MAIL ICQ   Вверх
Mal Hack
Дата 3.11.2005, 23:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 11
Всего: 261



fregs поясни от чего зависит первый или последний.
PM ICQ   Вверх
Darhazer
Дата 4.11.2005, 12:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 429
Регистрация: 28.9.2005
Где: HellCity (Sofia, Bulgaria)

Репутация: 3
Всего: 29



Можно просто так:

Код

select * from post where threadid=x and postid = y
union
select * from post where threadid=x limit 5 order by postid desc



--------------------
I'm a wheel, I'm a wheel, I can roll, I can feel
But you can't stop me turning
'Cause I'm the sun, I'm the sun, I can move, I can run
But you'll never stom me burning
PM MAIL WWW ICQ YIM   Вверх
Mal Hack
Дата 4.11.2005, 14:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 11
Всего: 261



Вы мне объясните, как это LIMIT может перед ORDER BY идти. Т.е. не как, а с каких пор.
PM ICQ   Вверх
Bastet
Дата 5.11.2005, 00:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 159
Регистрация: 26.9.2005
Где: Тильзит

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



Mal Hack, я тоже немного удивилась.
Всегда встречала и использовала LIMIT только в конце запроса. Но, возможно, я не все видале...
--------------------
"I'm not bad. I'm just drawn that way" © Jessica RabbitСм.также: BB | ЖЖ | DA
PM MAIL WWW ICQ   Вверх
Mal Hack
Дата 5.11.2005, 01:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 11
Всего: 261



Цитата(Bastet @ 5.11.2005, 01:06)
Всегда встречала и использовала LIMIT только в конце запроса. Но, возможно, я не все видале...

Я просто точно помню, что LIMIT не может быть перед сортировкой. Ну никак.
PM ICQ   Вверх
fregs
Дата 10.11.2005, 14:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 72
Регистрация: 25.11.2004

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



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

$sSelectSQL = '
        (SELECT postid, dateline, pagetext, username, userid
        FROM ' . _TblPrefix . 'post
        WHERE threadid = ' . $aThreadInfo['threadid'] . ' AND visible = 1
        ORDER BY dateline DESC LIMIT ' . $iLastX . ')
        UNION
        (SELECT postid, dateline, pagetext, username, userid
        FROM ' . _TblPrefix . 'post
        WHERE threadid = ' . $aThreadInfo['threadid'] . ' AND visible = 1
        ORDER BY dateline LIMIT 1)';

PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Базы Данных | Следующая тема »


 




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


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

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