我在两个人(用户222和用户5555)之间进行了消息对话,它显示如下:
Conversation-ID 1, Message-ID 5, User-ID 222: "Oh, and I'm happy about that!"
Conversation-ID 1, Message-ID 4, User-ID 222: "And bought me a new car."
Conversation-ID 1, Message-ID 3, User-ID 222: "I just won some money!"
Conversation-ID 1, Message-ID 2, User-ID 5555: "Fine, how are you?"
Conversation-ID 1, Message-ID 1, User-ID 222: "Hi there, how are you?"
现在我正在寻找PHP / MySQL中的解决方案,只显示来自User-ID 222的消息,直到来自User-ID 5555的消息。
结果应为:
Conversation-ID 1, Message-ID 5, User-ID 222: "Oh, and I'm happy about that!"
Conversation-ID 1, Message-ID 4, User-ID 222: "And bought me a new car."
Conversation-ID 1, Message-ID 3, User-ID 222: "I just won some money!"
其实我有
"SELECT * FROM table_conversations WHERE conversation_id='1' and user_id !='5555' ORDER BY message_id DESC"
但当然这会显示来自用户ID 222的所有消息。我想要的是仅来自用户ID 222的最后未回复消息。
php + mysql中是否有任何命令或解决方案可以获得此结果,还可用于所有其他对话吗?
答案 0 :(得分:0)
假设消息id指定了消息的顺序:
select *
from table_conversation c
where user_id = 222 and
message_id > (select max(message_id) from table_conversation c2 where user_d = 555);