以下是一个按日期排序获取唯一对话和最后一条消息的MySQL查询的解决方法:
SELECT t1.conversation_id, t1.message
FROM your_table t1
INNER JOIN (
SELECT MAX(date) AS max_date, conversation_id
FROM your_table
GROUP BY conversation_id
) t2 ON t1.date = t2.max_date AND t1.conversation_id = t2.conversation_id
ORDER BY t1.date DESC;
请注意将上述查询中的"your_table"替换为您的实际表名。
解释:
SELECT MAX(date) AS max_date, conversation_id FROM your_table GROUP BY conversation_id
用于获取每个对话的最后一条消息的日期。它返回一个临时表t2,包含最后一条消息的日期(max_date)和对应的对话ID(conversation_id)。ON t1.date = t2.max_date AND t1.conversation_id = t2.conversation_id
条件来获取具有最后一条消息的对话的唯一对话ID和消息内容。这将返回一个结果集,包含按日期排序的唯一对话和最后一条消息。ORDER BY t1.date DESC
对结果按日期进行降序排序,以确保最新的对话显示在最前面。希望这可以帮助到您!
上一篇:按日期排序和给定日期中值的数量
下一篇:按日期排序健康数据