mysql sql_mode 关闭ONLY_FULL_GROUP_BY
解决 MySQL 中 ONLY_FULL_GROUP_BY 问题
在使用 MySQL 数据库时,有时会遇到 ONLY_FULL_GROUP_BY 的错误提示。这是因为 MySQL 在默认情况下启用 ONLY_FULL_GROUP_BY 模式,它要求 GROUP BY 子句中的所有列都需要在 SELECT 中出现,或者是聚合函数。如果有列没有在 GROUP BY 中出现,或者没有使用聚合函数,就会报错。
这种模式的设计是为了避免在 GROUP BY 操作中出现错误的结果。但是,有时候我们可能需要关闭 ONLY_FULL_GROUP_BY 模式,可以通过设置 sql_mode 参数来实现。
关闭 ONLY_FULL_GROUP_BY 模式
要关闭 ONLY_FULL_GROUP_BY 模式,可以通过修改 sql_mode 参数。首先登录到 MySQL 数据库中,可以通过以下命令查看当前的 sql_mode 参数设置:
SHOW VARIABLES LIKE 'sql_mode';
这样就成功关闭了 ONLY_FULL_GROUP_BY 模式。如果想要永久关闭,可以修改配置文件,在 my.cnf 或 my.ini 文件中添加如下配置:
[mysqld]
sql_mode = "STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。