gpt4 book ai didi

MySQL:有没有办法从结果中消除重复的条目

转载 作者:可可西里 更新时间:2023-11-01 08:33:05 24 4
gpt4 key购买 nike

我有一个名为“message”的表,用于存储从一个用户到另一个用户的消息。我想制作一个消息框,其中包含特定用户的传入和传出 消息。此消息框应包含两个用户之间的最后一条消息。所以,我必须消除两个用户之间的重复消息。我尝试了 group by,它消除了重复的消息,但我没有选择最新的消息,因为 order bygroup by 之后工作。我尝试使用 distinct 函数来消除重复消息。它运行良好,但我必须选择 distinct

无法选择的所有列

我的消息表:

+-------+---------+------+-----+------------+
| id | from_id | to_id| text| created_at |
+-------+---------+------+-----+------------+
| 1 | 1 | 2 | mes | 2014-01-16 |
| 2 | 2 | 1 | mes | 2014-01-17 |
| 3 | 1 | 3 | mes | 2014-01-18 |
| 4 | 3 | 1 | mes | 2014-01-19 |
+-------+---------+------+-----+------------+

我的分组依据 SQL

SELECT * FROM message WHERE (from_id = 1 OR to_id = 1) GROUP BY(from_id + to_id) ORDER BY created_at DESC;

不同

SELECT DISTINCT(from_id + to_id) FROM message WHERE (from_id = 1 OR to_id = 1)

在上面的例子中,我想选择第二条和第四条消息。

有没有办法从结果中消除两个用户之间的重复消息?

编辑:我改进了示例

最佳答案

我尝试了 group by 并且它消除了重复的消息,但我没有选择最新的消息,因为 order by 在 group by 之后工作

所以你可以提前订购:

SELECT * 
FROM (SELECT * FROM message ORDER BY created_at DESC)
WHERE (from_id = 1 OR to_id = 1) GROUP BY(from_id + to_id);

关于MySQL:有没有办法从结果中消除重复的条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21267128/

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