MySQL获取2个人之间的最新消息

标签 mysql messaging

SELECT *
FROM messages
WHERE message_id IN (SELECT MAX(message_id)
                     FROM messages
                     GROUP BY if(sender_id > receiver_id, CONCAT(sender_id, receiver_id), CONCAT(receiver_id, sender_id))
                    )

我有一个简单的消息传递系统,其中的消息是 1 t 1(无组)。 我只想获取两个用户之间的最新消息。

上面的“有效”,但我认为我应该使用最大时间戳与 message_id 来获取最新信息。

我的 table 是:

message_id (unique, auto inc),
sender_id (Primary),
receiver_id (Primary),
time_date,
content

最佳答案

你能不能简单地这样做:

Select message_id from messages where sender = x and receiver = y having max (timestamp) group by message_id

感觉即使这不太正确,您也应该能够在此处使用 having 子句并消除对子查询的需要。

关于MySQL获取2个人之间的最新消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36516766/

相关文章:

mysql - 将mysql正则表达式拆分为多行

PHP : applying html_entity_decode to whole result array

java - ActiveMQ:如何平衡多个Message Broker实例之间的负载?

java - 如何使用 java 和 spring 3.0 同时处理来自 JMS 主题(不是队列)的多条消息?

java - 始终确保 ActiveMQ 主题中只有最后 10 条消息

java - 哪种设计模式或缓存策略适合这种模式?

c# - 如何在没有 MSMQ 的情况下通过 http 接收消息

mysql - 是否可以自动将 mysql 数据库备份到 dropbox?

php - 什么会更好 : click counter on mysql or on flat file?

mysql - 在 MySQL 中,我如何通过不同的列和公用键按日期获取最新记录?