首页  >  文章  >  数据库  >  如何修复 MySQL 错误 1055:表达式不在 GROUP BY 子句中?

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

DDD
DDD原创
2024-11-21 09:13:11947浏览

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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn