我正在使用此查询:
SELECT sender_userid,receiver_userid,message,message_read,`datetime`,sender_userid + receiver_userid AS message_token FROM messages
WHERE (receiver_userid='1000000172' OR sender_userid='1000000172') AND friendship_status=1 AND receiver_history=1
GROUP BY message_token;
结果如下:
如果我放弃Group By我得到这个结果:
您将在第二张图片中看到有2种不同的消息''结果。
为什么当我分组时我只得到一个结果?不应该同时显示两者吗?
有没有办法让两者都独一无二?' mesage_token'结果
答案 0 :(得分:0)
经过一些研究后我发现这是以下MySQL版本的错误: 5.1,5.5,5.6,5.7 。
这是发展者认识到它的bug report page现在正在按预期工作。
在同一页面上,重现它的代码:
CREATE TABLE t1 (a INT, b VARCHAR(1), INDEX(b,a)) ENGINE=MyISAM;
INSERT INTO t1 VALUES (2,'s'),(5,'h'),(3,'q'),(1,'a'),(3,'v'),
(6,'u'),(7,'s'),(5,'y'),(1,'z'),(5,'i'),(2,'y');
SELECT b, max(a) FROM t1 WHERE b = 'i' OR a = 2 GROUP BY b;