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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сортировка по дате! 
:(
    Опции темы
CruorVult
Дата 5.4.2009, 14:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Доброго всем времени суток!

Вот запрос:
Код
SELECT DISTINCT p FROM message WHERE s='$s' ORDER BY date DESC

Но в чем загвоздка, мне надо чтобы вначале отсортировало по дате а потом выбрало все поля `p` которые встречаются впервые!
А даный запрос находит все поля `p` которые встречаются впервы а потом сортирует их по дате!
PM MAIL Skype   Вверх
awers
Дата 5.4.2009, 16:15 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



CruorVult, может я чего не понимаю. А разница то какая?
PM MAIL WWW ICQ Skype   Вверх
skyboy
Дата 5.4.2009, 16:33 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


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

Репутация: 14
Всего: 260



CruorVult, тебя смущает другой порядок?
PM MAIL   Вверх
CruorVult
Дата 5.4.2009, 17:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(skyboy @  5.4.2009,  16:33 Найти цитируемый пост)
CruorVult, тебя смущает другой порядок?

Именно! В моем запросе вывод `p`будет 1,2,3.... А мне надо чтоб он зависил от поля 'date'.

Ну так что, есть какие-то мысли по этому вопросу?

Это сообщение отредактировал(а) CruorVult - 6.4.2009, 14:29
PM MAIL Skype   Вверх
CruorVult
Дата 7.4.2009, 15:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Так что никто не знает как это сделать?
PM MAIL Skype   Вверх
skyboy
Дата 7.4.2009, 15:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


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

Репутация: 14
Всего: 260



в mysql нет агрегирующей функции first.
лучше опиши задачу(с минимумом технических подробностей - только саму задачу)
PM MAIL   Вверх
Primitive
Дата 7.4.2009, 16:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



А может разбить на 2 запроса? В первом отсортировать по дате и сохранить изменения в таблице, а вторым уже выбрать оттуда 'p'. Или задача не позволяет изменять таблицу в базе?
PM MAIL WWW ICQ   Вверх
CruorVult
Дата 7.4.2009, 17:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Имеется две таблицы: post(с ключевым полем `p`) и message.
В таблице  post содержатся темы(названия, описания и т.д. ) а в message соответственно сообщения. Так вот мне надо вывести все темы из post в последовательности начиная с последнего добавленого сообщения!
PM MAIL Skype   Вверх
Primitive
Дата 8.4.2009, 06:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



И все-таки, что мешает разбить на 2 запроса? В первом отсортировать, а вторым сделать выборку.
PM MAIL WWW ICQ   Вверх
skyboy
Дата 8.4.2009, 07:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


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

Репутация: 14
Всего: 260



кстати, в первой таблице ничего про таблицу post не было smile
Код

SELECT post.*, max(message.date)
FROM post
INNER JOIN message 
ON message.p = post.p
GROUP BY post.p
ORDER BY 2 DESC

PM MAIL   Вверх
CruorVult
Дата 8.4.2009, 15:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Не работает  smile 
Выбирает темы в обратном порядке (создания), не зависимо от даты внесения сообщения.

Цитата(Primitive @  8.4.2009,  06:54 Найти цитируемый пост)
И все-таки, что мешает разбить на 2 запроса? В первом отсортировать, а вторым сделать выборку.

Если использовать запрос
Код
SELECT * FROM `message` ORDER BY `date` DESC

а потом 
Код
SELECT DISTINCT p FROM message WHERE s='$s'

то это ничего не даст т.к. запрос SELECT не модифицирует БД!
PM MAIL Skype   Вверх
CruorVult
Дата 10.4.2009, 18:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Код

SELECT post.*, max(message.date) as max_date
FROM post
INNER JOIN message 
ON message.p = post.p
GROUP BY post.p
ORDER BY max_date DESC


Немного исправил, теперь работает smile 
skyboy, спс smile 
PM MAIL Skype   Вверх
skyboy
Дата 10.4.2009, 20:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


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

Репутация: 14
Всего: 260



 smile из-за того, что использовано 
Цитата(skyboy @  8.4.2009,  06:56 Найти цитируемый пост)
post.*

вторым столбцом будет не 
Цитата(skyboy @  8.4.2009,  06:56 Найти цитируемый пост)
max(message.date)

а что-то другое.
невнимательность моя  smile 
PM MAIL   Вверх
SureGOOD
Дата 11.4.2009, 13:11 (ссылка)    | (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



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


 




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


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

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