gpt4 book ai didi

mysql - 错误 SqlExceptionHelper :146 - Expression #7 of SELECT list is not in GROUP BY clause and contains nonaggregated column

转载 作者:太空宇宙 更新时间:2023-11-03 11:33:02 25 4
gpt4 key购买 nike

我无法从我服务器上的数据库获取数据我正在使用 ubantu 16.04 和 mysql Ver 14.14 Distrib 5.7.20,用于 Linux (x86_64) 使用 EditLine 包装器。显示错误

2018-01-08 09:18:04 ERROR SqlExceptionHelper:146 - Expression #7 of SELECT
list is not in GROUP BY clause and contains nonaggregated column
db11.billpaidde6_.id' which is not functionally dependent on
columns in GROUP BY clause; this is incompatible with
sql_mode=only_full_group_by

我已经检查了所有在我的本地主机上运行但在服务器中显示错误的查询如何解决这个问题

最佳答案

您收到此错误是因为 sql_mode 设置为 ONLY_FULL_GROUP_BY .此设置意味着当您选择未以任何方式聚合的数据并且查询中有 GROUP BY 时,MySQL 将出错。

这将在以下场景生效:

table: users
id | name | favourite_colour
----------------------------
1 | Fred | blue
2 | John | green
3 | David | blue

进行以下查询:

SELECT id, favourite_colour FROM users GROUP BY favourite_colour

如果您是 MySQL,您会为 id 列返回什么?对于分组 green 的行,这是一个简单的选择,因为只有 1 个聚合。但是,对于颜色 blue,有 2 行被聚合。实际上 MySQL 会选择一个 id 来显示给你,但我认为它不可靠。

另一个可能触发此错误的查询是:

SELECT * FROM users GROUP BY favourite_colour

这仍在选择未以任何方式聚合的列,并且仍然会失败。


您可以通过从查询中省略任何非聚合列或聚合您可能关心的列来解决此错误。

SELECT favourite_colour FROM users GROUP BY favourite_colour
SELECT count(*), favourite_colour FROM users GROUP BY favourite_colour

或者,您可以禁用此 SQL 模式。

SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''))

上述命令不会永久设置 sql_mode 全局。请在 my.cnf 中找到该行(或类似行)并删除 ONLY_FULL_GROUP_BY

[mysqld] 
sql_mode = ONLY_FULL_GROUP_BY

如果您无权访问服务器,则需要联系您的托管服务提供商并要求他们关闭 ONLY_FULL_GROUP_BY

关于mysql - 错误 SqlExceptionHelper :146 - Expression #7 of SELECT list is not in GROUP BY clause and contains nonaggregated column,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48147294/

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