我在MySQL中创建了一个包含以下列的表:
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我喜欢在to_id上使用GROUP_CONCAT来存储来自from_id的所有消息,并且只显示一条消息(最新的)。我的问题是:
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。
我已经尝试了order BY UNIX_TIMESTAMP(time_sent) DESC,尝试在查询的末尾放置order by。什么都不管用。我希望最新的消息由from_id显示。
发布于 2016-07-30 19:33:55
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_idhttps://stackoverflow.com/questions/38671819
复制相似问题