表结构
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个未读的mes,我如何创建一个查询来过滤掉所有未读消息,但只显示最后一个消息?
因此,我得到了这个结果
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发布于 2016-01-19 18:12:40
所以你的结果应该总是只返回一条消息?这一条消息应该是最后发送的消息吗?那么这个查询就可以工作了。
SELECT * FROM table WHERE Message_read 0
ORDER BY Time_sent LIMIT 1发布于 2016-01-19 18:57:10
使用Mysql LIMIT很简单,"Mysql Limit“可以定义你将获得多少结果,例如,如果你在mysql查询中使用"LIMIT 1”,那么你只会得到1个结果。
SELECT * FROM table_name WHERE Message_read=0
ORDER BY Time_sent LIMIT 1这应该只从表中返回1个结果,其中Message_read=0是您的表中的最新结果。
https://stackoverflow.com/questions/34873580
复制相似问题