php - 很难找到每个对话的列表消息的查询

标签 php mysql sql

我有下表。我想获取每次对话的最后一条消息。请帮助进行正确的查询以获取它。

  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/

相关文章:

php - 使用jquery模态形式将数据插入MYSQL

php - jQuery Ajax post 到 PHP 脚本给出 404 错误

php - 使用 PHP 中的删除按钮删除表中的行

sql - Sybase Case 语句语法错误

sql - 使用 union all 为配置单元输出编写列标题

php - MySQL:基于列值自动递增?

php - 确切知道转换后的视频的大小

PHP/MySQL更新数据库中一条消息记录的问题

php - 如何在图表中显示一周的每一天数据?

c# - 如何知道行是否更新