我有下表。我想获取每次对话的最后一条消息。请帮助进行正确的查询以获取它。
ID ID2 User1 User2 Message TimeStamp
---- ----- ------- ------- ------------------------- ------------------------
1 1 1 2 hii March, 04 2017 8:30:00
1 2 2 1 hey bro March, 04 2017 8:31:00
1 3 1 2 hw are u? March, 04 2017 8:32:00
1 4 2 1 good,thnks4asking March, 04 2017 8:33:00
5 1 3 1 r u there? March, 04 2017 8:34:00
5 2 1 3 yup,say March, 04 2017 8:35:00
5 3 3 1 hw are u? March, 04 2017 8:36:00
5 4 1 3 m fine March, 04 2017 8:37:00
5 5 3 1 where are u these days? March, 04 2017 8:38:00
1 5 1 2 your most welcom :D March, 04 2017 8:39:00
这里ID
是讨论id(聊天id例如1是id为1和2的用户之间的讨论id,5是id为1和3的用户之间的讨论)和ID2
是讨论中的号码。结果应该显示 2 条消息,因为“您最欢迎”是 ID 为 1 和 2 的用户之间的最后一条消息,以及第二条消息“这些天你在哪里?”是 ID 为 1 和 3 的用户之间的最后一条消息
我尝试了很多查询,例如
SELECT message ,MAX(id2)
FROM pm
WHERE user1=1 OR user2=1
GROUP BY id
SELECT message
FROM pm
WHERE user1=1 OR user2=1
GROUP BY id
HAVING id2=MAX(id2)
注意:现在我只想从用户(具有ID=1
)的角度来看最后一个。
最佳答案
这可能对您有帮助:
select * from pm where user1 = 1 order by id desc limit 1;
这里的“id”(您可以根据您的需要使用,即时间戳)是您的列名称,在此基础上您将获得限制为 1 的降序排列,以便您获得最后一条消息。
关于php - 很难找到每个对话的列表消息的查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42591783/