表格结构
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
答案 0 :(得分:0)
所以你的结果应该只返回一条消息?这一条消息应该是最后发送的消息吗?然后这个查询将起作用
SELECT * FROM table WHERE Message_read 0
ORDER BY Time_sent LIMIT 1
答案 1 :(得分:0)
使用Mysql LIMIT很简单," Mysql Limit"可以定义您将获得多少结果,例如,如果您使用" LIMIT 1"在你的mysql查询中,你只得到1个结果。
SELECT * FROM table_name WHERE Message_read=0
ORDER BY Time_sent LIMIT 1
这应该只从表中返回1个结果,其中Message_read = 0且表中最新。