gpt4 book ai didi

mysql - 从 sql 获取当前用户和其他用户之间的最后一条消息

转载 作者:行者123 更新时间:2023-11-29 19:50:44 27 4
gpt4 key购买 nike

我想检索当前用户和其他人之间的最后一条消息,并将其显示在用户的消息页面中,就像 Facebook 所做的那样。我用过这个

select *
from ch_messages
where receiver='$current_user_id' or sender='$current_user_id' && (least(sender, receiver), greatest(sender, receiver), f_msg_date)
in
(
select
least(sender, receiver) as x, greatest(sender, receiver) as y,
max(f_msg_date) as date
from ch_messages
group by sender, receiver
)

但它获取从用户到当前用户的所有消息以及当前用户给该用户的最后一条消息。 I want it like this image

这是我的表结构

mid  => messages id
sender => The sender of the message
receiver => The receiver of the message
msg => The message sent
f_msg_date => date in which the message was sent

最佳答案

您只需删除子查询中接收器周围的引号即可如果您想要最后一条消息,假设每条消息都有一个唯一的 id 列(自动递增)

  select *
from ch_messages
where receiver='$current_user_id'
or sender='$current_user_id'
AND ( id, least(sender, receiver), greatest(sender, receiver), f_msg_date )
in
( select
max(id)
, least(sender, receiver)
, greatest(sender, receiver),
max(f_msg_date)
from ch_messages
group by sender, receiver
)

关于mysql - 从 sql 获取当前用户和其他用户之间的最后一条消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40822246/

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