MySQL 错误: Expression #1 of ORDER BY clause is not in GROUP BY clause - 解决方法
这个报错是由于MySQL的sql_mode设置为'only_full_group_by'模式,要求在使用GROUP BY语句时,SELECT语句中的列必须是聚合函数或者GROUP BY子句中的列。而你的SQL语句中的ORDER BY子句中使用了非聚合列'category_id',导致报错。
解决方法有两种:
- 修改MySQL的配置,将sql_mode设置为其他模式,如:SET sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'
- 修改SQL语句,将ORDER BY子句中的非聚合列替换为聚合函数或者GROUP BY子句中的列。例如,可以使用MIN或MAX函数来代替'category_id'列,或者将'category_id'列添加到GROUP BY子句中。
具体的解决方法取决于你的需求和业务逻辑。
原文地址: https://www.cveoy.top/t/topic/pbmr 著作权归作者所有。请勿转载和采集!