MySQL添加到具有分组依据的列不会显示所有行

时间:2013-11-26 06:49:53

标签: mysql select group-by

我正在使用此查询:

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;

结果如下: enter image description here

如果我放弃Group By我得到这个结果:

enter image description here

您将在第二张图片中看到有2种不同的消息''结果。

为什么当我分组时我只得到一个结果?不应该同时显示两者吗?

有没有办法让两者都独一无二?' mesage_token'结果

1 个答案:

答案 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;