GROUP_CONCAT上的ORDER BY日期时间不起作用

时间:2016-07-30 08:10:10

标签: mysql datetime sql-order-by group-concat

我在MySQL中创建了一个包含以下列的表:

id - from_id - to_id - datetime - message

在datetime列中,datetime的存储方式如下:

2016-07-28 17:36:24
2016-07-28 17:39:24
2016-07-28 17:41:15

我在GROUP_CONCAT上使用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

我通过from_id得到了所有结果,但是消息是第一个。似乎没有应用order BY time_sent DESC

我已尝试过订单BY UNIX_TIMESTAMP(time_sent) DESC,尝试在查询结束时按顺序排序。没有任何效果。我希望from_id显示最新消息。

1 个答案:

答案 0 :(得分: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