这个错误是由于 MySQL 的 sql_mode 设置了 only_full_group_by,导致在 GROUP BY 子句中必须包含所有非聚合的列。

解决方法有两种:

  1. 修改 MySQL 的配置文件,将 sql_mode 中的 only_full_group_by 去掉。可以在 my.cnf 或者 my.ini 文件中找到并修改该配置,然后重启 MySQL 服务。
  2. 修改查询语句,将 ORDER BY 子句中的 'category_id' 列改为在 GROUP BY 子句中进行分组的列,或者使用聚合函数对 'category_id' 进行处理。

例如,将查询语句修改为:

SELECT category_name name, count(0) value FROM product
LEFT JOIN category ON category.category_id = product.product_category_id
GROUP BY category_name, category_id
ORDER BY category_name, category_id

这样就能避免这个错误。

MySQL 错误: Expression #1 of ORDER BY clause is not in GROUP BY - 解决方法

原文地址: https://www.cveoy.top/t/topic/pbmo 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录