【发布时间】:2019-10-20 06:44:14
【问题描述】:
我正在尝试创建一个聊天应用程序,并且目前正在列出当前用户进行的对话。
这是我的 SQL 表:(这里 29 是当前用户)
ID | FROM_USER | TO_USER | MESSAGE
------------------------------------------------------------
1 | 16 | 29 | Hey!
2 | 29 | 18 | Hii..
3 | 29 | 16 | What's up?
4 | 18 | 29 | Long time no see..
我要做的是按降序对对话进行分组,例如:
18: Long time no see...
29 (to 16) : What's up?
我目前使用的php代码如下:
$query = mysqli_query($con,"SELECT DISTINCT CASE WHEN from_user = 29 THEN to_user ELSE from_user END as other_user FROM mytable WHERE from_user = 29 OR to_user = 29 ORDER BY id DESC");
while($fetch = mysqli_fetch_array($query)) {
$user = $fetch['other_user'];
echo $user.'<br/>';
}
但这似乎不起作用。我究竟做错了什么?
提前致谢!
【问题讨论】:
-
现在的结果是什么
-
为了与用户 29 进行对话,
SELECT * FROM mytable WHERE from_user = 29 OR to_user = 29 ORDER BY id DESC不就是你想要的吗? -
您能否包含完整的 4 条记录预期输出?
-
结果有时如预期的那样。其他时候它会以另一种方式出现。