#1055 - Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column 'stack_wordpress.wp_postmeta.meta_value' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

本文最后更新于 2024年10月26日,已超过 4 月没有更新,如果文章内容失效,请反馈给我们,谢谢!
#1055 - Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column 'stack_wordpress.wp_postmeta.meta_value' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

这个错误是因为在使用 GROUP BY 时, ORDER BY 子句包含了非聚合列 meta_value。这在 ONLY_FULL_GROUP_BY 模式下是不允许的。

解决办法:

临时禁用 ONLY_FULL_GROUP_BY 模式,以便查询能够执行

SET SESSION sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));

只会改变当前会话的SQL模式设置。一旦你断开数据库连接或重启MySQL服务,设置将恢复为默认值。

如果要永久禁用 ONLY_FULL_GROUP_BY

需要修改 MySQL 配置文件:

  1. 打开 MySQL 配置文件(my.cnf 或 my.ini)。
  2. 在 [mysqld] 区块添加或修改 sql_mode
[mysqld]
sql_mode="NO_ENGINE_SUBSTITUTION"
  1. 保存文件并重启 MySQL 服务。

这样可以确保设置在重启后仍然有效。

© 版权声明
分享是一种美德,转载请保留原链接
THE END

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

滚动至顶部