#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
• 约 673 字 • 预计阅读 3 分钟
#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 配置文件:
- 打开 MySQL 配置文件(
my.cnf或my.ini)。 - 在
[mysqld]区块添加或修改sql_mode:
[mysqld]
sql_mode="NO_ENGINE_SUBSTITUTION"
- 保存文件并重启 MySQL 服务。
这样可以确保设置在重启后仍然有效。