как организовать список сообщений по последним отправленным - PullRequest
0 голосов
/ 09 ноября 2011

Я изо всех сил пытаюсь найти правильный способ получения правильных результатов из моей таблицы MySQL. У меня есть таблица для хранения сообщений:

    CREATE TABLE IF NOT EXISTS `messages` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `who` int(11) NOT NULL,
  `to` int(11) NOT NULL,
  `message` varchar(2000) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
  `date` datetime NOT NULL,
  PRIMARY KEY (`id`)
)

В этой таблице хранятся все сообщения из всех разговоров между всеми участниками. Чтобы упорядочить результаты, я использую этот запрос:

SELECT * FROM messages group by who order by date desc

Он правильно группирует сообщения по отправителям, но упорядочивает их по дате первого сообщения, написанного определенным участником. Я хочу сделать это, чтобы упорядочить вывод в соответствии с датой последнего сообщения. Пожалуйста, помогите мне найти выход из этого, я чувствую, что это должно быть просто, но я все еще не могу найти выход. Готов дать больше объяснений, если это необходимо. Спасибо всем!

Ответы [ 4 ]

0 голосов
/ 09 ноября 2011

попробуйте это:

ВЫБРАТЬ разные m.who, m. * ОТ сообщений m порядок по дате desc

0 голосов
/ 09 ноября 2011

Хотя я не уверен, что вы пытаетесь достичь с помощью SELECT * при использовании GROUP BY, в качестве основы для заказа будет взята последняя дата:

SELECT * FROM messages GROUP BY who ORDER BY MAX(date) DESC;
0 голосов
/ 09 ноября 2011

Почему бы не просто Выберите * из списка сообщений по тому, кто, дата

0 голосов
/ 09 ноября 2011

Если вы просто хотите заказать его по дате последней отправки, просто измените запрос на:

SELECT * FROM messages ORDER BY date DESC

Это будет просто заказано самое последнее сначала, самое старое последнее

...