gpt4 book ai didi

MySQL : isn't in GROUP BY

转载 作者:行者123 更新时间:2023-11-29 20:18:54 25 4
gpt4 key购买 nike

网站会生成结果,但 SELECT COUNT 和带有 GROUP BY 的 SELECT 查询具有两个不同的结果计数。这可能是由于 phpmyadmin 中显示错误而不是网站上显示的错误。

查询:

SELECT count(DISTINCT `name`) as `numrows` FROM `users` WHERE `verified` = '1'

SELECT `name`, `type`, `language`, `code` FROM `users` WHERE `verified` = '1' GROUP BY `name` ORDER BY `count` DESC LIMIT 0, 25

PhpMyAdmin 提供以下错误:

1055 - 'main.users.type' isn't in GROUP BY

在阅读 MySQL 文档时,我仍然不清楚我必须修复什么。我似乎无法理解这一点。

最佳答案

您需要有一个完整的分组依据:

SELECT `name`, `type`, `language`, `code` 
FROM `users`
WHERE `verified` = '1'
GROUP BY `name`, `type`, `language`, `code`
ORDER BY `count` DESC LIMIT 0, 25

SQL92 要求 select 子句中的所有列(聚合除外)都是 group by 子句的一部分。 SQL99 稍微放松了这一限制,并规定 select 子句中的所有列必须在功能上依赖于 group by 子句。 MySQL 默认情况下允许部分分组,这可能会产生不确定的答案,例如:

create table t (x int, y int);
insert into t (x,y) values (1,1),(1,2),(1,3);
select x,y from t group by x;
+------+------+
| x | y |
+------+------+
| 1 | 1 |
+------+------+

即为 x 组选择随机 y。可以通过设置 @@sql_mode 来防止这种行为:

set @@sql_mode='ONLY_FULL_GROUP_BY';
select x,y from t group by x;
ERROR 1055 (42000): 'test.t.y' isn't in GROUP BY

关于MySQL : isn't in GROUP BY,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39585983/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com