需要一个mysql选择数据的解决方案,直到

时间:2013-09-05 13:09:20

标签: php mysql sql select select-until

我在两个人(用户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中是否有任何命令或解决方案可以获得此结果,还可用于所有其他对话吗?

1 个答案:

答案 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);
相关问题