我有一个消息表,下面显示了3行 - 第二行和第三行是2个用户之间。
当我查询这个表并使用Group By I时,我会看到两行显示,但我只想要一行。
这是查询:
SELECT a.receiver ORDER BY a.datetime DESC LIMIT 25;
当两个用户都是发件人/收件人时,有没有办法限制一行返回。
感谢
答案 0 :(得分:0)
首先,您可以按较大的数字分组,然后按较小的数字分组。
onChange
注意:强>
第一个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;
获取较大的数字,第二个获取较小的数字。