gpt4 book ai didi

mysql - 从表中选择消息

转载 作者:行者123 更新时间:2023-11-29 03:11:23 26 4
gpt4 key购买 nike

我有一个消息表

messages
--------------
user_id_from (int)
user_id_to (int)
text (varchar)
date (datetime)
isRead (boolean)

我想获取收件箱和发件箱位于一个列表中的用户的消息事件(与 Facebook 消息相同)。我想获取我联系的每个用户的最后一条消息。我试着这样做:

假设这是我的数据

user_id_from   user_id_to  text      date      isRead
100 101 "text1" 2011/1/1 0
101 100 "text2" 2011/1/2 0
100 102 "text3" 2011/1/5 0

这是我的查询:

select *
from Message m
where m.user_id_to = 100
or m.id in
(select m2.id
from Message m2
where m2.user_id_from = 100
and m2.user_id_to != m.user_id_from
)
group by m.user_id_from, m.user_id_to

此查询为我提供了用户 100 所在位置的完整消息。

我该怎么做?

最佳答案

这需要您跟踪消息中的“话题”,或者您也可以将它们称为对话。每次发送消息时,它都会获得一个 conversation_id。然后,创建一个 user_conversation_subscriptions 表。向某人发送消息会开始新的对话,发送者和接收者是唯一的参与者,但他们可以邀请其他人加入对话。然后,您可以将新消息按对话分组,以查看您在哪个对话中收到了新消息,这就是它在 Facebook 上的工作方式。

关于mysql - 从表中选择消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7778707/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com