如何修复 MySQL 错误 1055:表达式不在 GROUP BY 子句中?

DDD
发布: 2024-11-21 09:13:11
原创
961 人浏览过

How to Fix MySQL Error 1055: Expression Not in GROUP BY Clause?

#1055 - 表达式不在 GROUP BY 子句中与服务器配置不兼容

在 MySQL 版本 5.7.12 及更高版本中,使用 sql_mode= only_full_group_by 设置确保聚合函数仅对 GROUP BY 子句中包含的列进行操作,或者

要解决错误“SELECT 列表的表达式不在 GROUP BY 子句中并且包含与 sql_mode=only_full_group_by 不兼容的非聚合列”,请考虑以下步骤:

  1. 启用兼容性模式:

    • 编辑 MySQL 配置文件(my.cnf 或 mysql.conf.d/mysql.cnf)。
    • 将以下行添加到的底部file:

      [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
      登录后复制
  2. 重启 MySQL:

    • 运行命令 sudo service mysql restart 重启MySQL server.

此修改后的 sql_mode 设置将允许在未包含在 GROUP BY 子句中的列上使用聚合函数,而不会引发错误。但是,建议仅出于兼容性目的使用此模式,并考虑重组查询以尽可能遵守 only_full_group_by 模式。

以上是如何修复 MySQL 错误 1055:表达式不在 GROUP BY 子句中?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板