我有一个消息表,下面显示了 3 行 - 第二行和第三行在 2 个用户之间。
当我查询此表并使用 Group By 时,我得到了两行,但我只想要一行。
这是查询:
SELECT a.receiver ORDER BY a.datetime DESC LIMIT 25;
当两个用户都是发送者/接收者时,有没有办法限制一行返回。
谢谢
最佳答案
首先您可以按较大的数字分组,然后按较小的数字分组。
SELECT
a.sender,
a.receiver,
a.message,
a. READ,
a.datetime
FROM
messages AS a
WHERE
(
a.sender = '1000000000'
OR a.receiver = '1000000000'
)
GROUP BY IF(a.sender > a.receiver, a.sender, a.receiver),
IF(a.sender > a.receiver, a.receiver,a.sender)
ORDER BY a.datetime DESC
LIMIT 25;
注意:
第一个 IF
选择较大的数字,第二个 IF
选择较小的数字。
关于MySQL - Group By 使用不同的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37114414/