2016-07-30 2 views
0

Я создал таблицу в 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.

+1

'ВЫБРАТЬ идентификатор, from_id, time_sent, сообщение ... GROUP BY from_id' Как вы видите, группировать по' from_id' но отображать несколько столбцов без функции агрегации. Теперь MySQL может выбрать любую строку. Связано: [Предложение group by в mySQL и postgreSQL, почему ошибка в postgreSQL?] (Http://stackoverflow.com/a/33629201/5070879) – lad2025

+0

Можете ли вы дать ** sql fiddle ** своими данными, чтобы мы могли дать ответьте быстро как можно больше – Sadikhasan

+0

Я думаю, что у вашего запроса есть ошибка, потому что в where where вы пишете «to_id = '1» и GROUP_CONCAT на to_id, тогда результат будет всего лишь «1» –

ответ

0
SELECT id, 
     from_id, 
     time_sent, 
     message, 
     GROUP_CONCAT(to_id) 
FROM 
    (SELECT * 
    FROM messages 
    WHERE to_id = '1' 
    ORDER BY time_sent DESC) AS test 
GROUP BY from_id 

SQL Fiddle

+0

Sadik bro .. Теперь это более расстраивает. Его работа над SQL Fiddle, я вижу это, но не на MySQL на моем локальном. Когда я пытаюсь использовать php или даже в консоли phpadmin для mysql, я получаю только первое сообщение, а from_id - в ASC. Пожалуйста, проверьте http://imgur.com/a/BoFRf .. Что я делаю неправильно? – Somename

Смежные вопросы