我创建MySQL中的表下面的列日期时间:ORDER BY上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
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
得到的所有结果hroup但该消息是最前面的一个。好像order BY time_sent DESC
未被应用。
我试过订单BY UNIX_TIMESTAMP(time_sent)
DESC
,尝试在查询的末尾放置顺序。没有工作。我想通过from_id
显示最新消息。
'选择ID,from_id,time_sent,消息... GROUP BY from_id'正如你看到的,你按'from_id'但没有聚集功能显示更多的列。现在MySQL可以选择任何行。相关:[mySQL和postgreSQL中的group by子句,为什么postgreSQL中的错误?](http://stackoverflow.com/a/33629201/5070879) – lad2025
你可以给你的数据** sql小提琴**所以我们可以给尽可能快地回答 – Sadikhasan
我认为你的查询有一个错误,因为在where子句中你写了“to_id ='1'”和GROUP_CONCAT on_id然后结果将只是“1” –