gpt4 book ai didi

PHP MYSQL - 将多个列区分为一个列

转载 作者:行者123 更新时间:2023-11-29 01:52:59 25 4
gpt4 key购买 nike

我已经阅读了很多与此主题相关的问题和答案,但我找不到任何适合我的东西,所以我真的需要一些帮助。

我正在尝试为我的网站制作一个简单的私有(private)消息系统。我有一个这样的表:

private messages: id, to_id, from_id, message, time_sent

我现在正尝试在我的页面上显示一个列表,其中包含一个成员与之交互的不同用户,类似于 Facebook 消息,因此每个名字应该只在列表中出现一次。

这就是我现在所拥有的,它显示了我作为用户 ($my_id) 参与的每条消息:

SELECT * FROM private_messages WHERE (from_id = '$Sid' AND to_id = '$my_id') OR (from_id = '$my_id' AND to_id = '$Sid')  ORDER BY time_sent ASC

这个查询显示了一个不同的列表,但只有我收到消息的人:

SELECT DISTINCT(from_id) FROM private_messages WHERE to_id='$my_id' ORDER BY time_sent DESC

我应该如何重写它,以便它为我提供与我交互的每个用户的不同列表(如 facebook 消息列表)?我想我需要区分两列,from_id 和 to_id,但我应该怎么做呢?

我知道这些问题听起来很模糊,但我真的无法更好地解释它。提前致谢!

最佳答案

试试这个:

SELECT DISTINCT IF(from_id = '$my_id', to_id, from_id) AS other_id
FROM private_messages
WHERE '$my_id' IN (to_id, from_id)
ORDER BY time_sent DESC

关于PHP MYSQL - 将多个列区分为一个列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36411041/

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