表结构
Id User_From User_To Time_sent Message Message_read
1 1 2 ~TimeLast ~Message 0
2 3 2 ~Time ... 0
3 3 2 ~TimeLast ... 0
如何创建一个查询来过滤掉所有未读消息,但如果表中有超过 1 个未读消息,则仅显示最后一条消息?
所以我得到了这个结果
Id User_From User_To Time_sent Message Mesage_read
1 1 2 LastTime ~~ 0
3 3 2 LastTime ~~ 0
编辑:效果很好
select p.id,user_from,username,message,time_sent,message_read
from private_messages p join users u on p.user_from = u.id where p.id in (select max(id) as id from private_messages where user_to = :u1 group by user_from
最佳答案
所以你的结果应该只返回一条消息?而且这一条消息应该是最后发送的一条消息?那么这个查询就可以工作
SELECT * FROM table WHERE Message_read 0
ORDER BY Time_sent LIMIT 1
关于Mysql 按私有(private)消息列表分组/排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34873580/