gpt4 book ai didi

mysql - 通过另一列对联合选择中的列进行排序

转载 作者:行者123 更新时间:2023-11-29 16:38:53 24 4
gpt4 key购买 nike

我有一张 table :

留言

id, user_from_id, user_to_id, send_date, message, is_readed

我想选择所有与我聊天的用户,所以我的查询如下所示:

SELECT user_from_id as user_id
FROM message
WHERE user_to_id=xxx
UNION
SELECT user_to_id
FROM message
WHERE user_from_id=xxx

..我有一个 user_id 列表,问题是我找不到通过 send_data 排序这些 id 的方法,因此在该列表的开头我会有一个我最近与之聊天的用户

有人可以帮助我吗?

最佳答案

取消工会怎么样?

SELECT (CASE WHEN m.user_to_id = xxx THEN m.user_from_id
ELSE m.user_to_id
END) as user_id
FROM message m
WHERE xxx IN (m.user_to_id, m.user_from_id)
ORDER BY m.send_date DESC;

这可能不是您真正想要的,因为用户将在列表中多次出现。你真正想要的是:

SELECT (CASE WHEN m.user_to_id = xxx THEN m.user_from_id
ELSE m.user_to_id
END) as user_id
FROM message m
WHERE xxx IN (m.user_to_id, m.user_from_id)
GROUP BY m.user_id
ORDER BY MAX(m.send_date) DESC;

关于mysql - 通过另一列对联合选择中的列进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53447504/

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