gpt4 book ai didi

php - 对用户消息 SQL 进行排序

转载 作者:行者123 更新时间:2023-11-29 14:43:42 25 4
gpt4 key购买 nike

我正在尝试通过按用户向其发送消息的人员对对话进行分组来构建用户的消息收件箱。

所以我想要一个用户列表,但我希望列表中的第一个用户是发送最近消息的用户。

我的message表包含字段:id、sender_id、receiver_id、text

下面的查询为我提供了我需要的列表,但没有按照消息 ID 的降序对它们进行排序。

SELECT sender_id AS messgr_id FROM   messages WHERE  receiver_id = '$sess_id' 
UNION
SELECT receiver_id AS messgr_id FROM messages WHERE sender_id = '$sess_id'

我希望有一种方法可以在 SQL 中对结果进行排序,而不必使用可能较慢的 php 进程。

谢谢!

最佳答案

假设 id 是一个标识列(具体来说,您希望它是 auto incrementing ),那么较大的 id 表示记录较新。在这种情况下,您将能够按 id 降序排序,以便首先获取较新的消息。像这样的东西(未经测试):

SELECT id,
CASE WHEN receiver_id = '$sess_id' THEN sender_id
ELSE receiver_id END AS messgr_id
FROM messages
WHERE receiver_id = '$sess_id'
OR sender_id = '$sess_id'
ORDER BY id DESC

关于php - 对用户消息 SQL 进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7459051/

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