Я создал таблицу в MySQL со следующими столбцами:ORDER BY DateTime на GROUP_CONCAT не работает
id - from_id - to_id - datetime - message
В столбце даты и времени даты и времени хранится как это:
2016-07-28 17:36:24
2016-07-28 17:39:24
2016-07-28 17:41:15
Я развлекался GROUP_CONCAT
on to_id
, чтобы сохранить все сообщения от from_id
и показать только 1 сообщение (последнее). Мой запрос:
SELECT id, from_id, time_sent, message, GROUP_CONCAT(to_id order BY
time_sent DESC) FROM messages WHERE to_id = '1' GROUP BY from_id
я получаю все hroup результаты по from_id
но сообщение самый первый. Похоже, что order BY time_sent DESC
не применяется.
Я пробовал заказ BY UNIX_TIMESTAMP(time_sent)
DESC
, попробовал наложить заказ в конце запроса. Ничего не получилось. Я хочу, чтобы последнее сообщение отображалось from_id
.
'ВЫБРАТЬ идентификатор, from_id, time_sent, сообщение ... GROUP BY from_id' Как вы видите, группировать по' from_id' но отображать несколько столбцов без функции агрегации. Теперь MySQL может выбрать любую строку. Связано: [Предложение group by в mySQL и postgreSQL, почему ошибка в postgreSQL?] (Http://stackoverflow.com/a/33629201/5070879) – lad2025
Можете ли вы дать ** sql fiddle ** своими данными, чтобы мы могли дать ответьте быстро как можно больше – Sadikhasan
Я думаю, что у вашего запроса есть ошибка, потому что в where where вы пишете «to_id = '1» и GROUP_CONCAT на to_id, тогда результат будет всего лишь «1» –