GROUP BY不适用于MySQL 5.7,因为5.7使用SQL_MODE的“ONLY_FULL_GROUP_BY”选项。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GROUP BY不适用于MySQL 5.7,因为5.7使用SQL_MODE的“ONLY_FULL_GROUP_BY”选项。相关的知识,希望对你有一定的参考价值。
我想显示组,当用户打开页面时应该随机化并显示两个组。因此,下面的查询工作正常,但GROUP BY不适用于mysql 5.7,因为5.7使用SQL_MODE的“ONLY_FULL_GROUP_BY”选项。除了"GROUP BY"
,您还可以建议其他任何查询格式吗?
查询必须显示为
如果登录用户ID(qazxsw poi)未加入群组用户qazxsw poi
如果在用户ID($uid
)中,则不是组所有者(组创建者)组F.group_user_id <> '$uid'
。
$uid
G.group_owner_id <> '$uid'
鉴于您已经使用$query = mysqli_query($this->db,"SELECT DISTINCT
G.group_id,
G.group_owner_id,
G.group_name,
G.group_title,
G.group_cover,
F.group_oid,
F.group_user_id
FROM groups G,
group_users F
WHERE G.status ='1' AND
G.group_id = F.group_oid AND
G.group_owner_id <> '$uid' AND
F.group_user_id <> '$uid'
GROUP BY G.group_id
ORDER BY rand()
LIMIT 2 ") or die(mysqli_error($this->db));
,这意味着您甚至不需要使用。只需删除它,错误就会消失。如果你想使用SELECT DISINCT
模拟GROUP BY
会产生的效果,那么你可以简单地GROUP BY
每列:
DISTINCT
请注意,如果您还要选择某些列的聚合,我们还有更多工作要做。然后,最有可能的是,我们最终会引入一个或多个子查询来解决您面临的GROUP BY
问题。
以上是关于GROUP BY不适用于MySQL 5.7,因为5.7使用SQL_MODE的“ONLY_FULL_GROUP_BY”选项。的主要内容,如果未能解决你的问题,请参考以下文章
简单的 MySQL 5.7 only_full_group_by 计数
MySQL 5.7默认ONLY_FULL_GROUP_BY语义介绍
MySQL 5.7默认ONLY_FULL_GROUP_BY语义介绍