在 mysql 中执行查询时出错相关组依据

Error related group by when executing query in mysql

Mysql 当我执行查询(使用 Group BY)以获取结果时返回以下错误

Error Code: 1055

Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'project.ws_images.wi_id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

我想通过 MONTH 获得结果。我已经搜索过它并找到了一些解决方案但仍然面临这个问题。目前我已经试过了

SELECT * FROM `ws_images` WHERE wi_type = 'image' GROUP BY MONTH(date_added);
 SELECT * FROM `ws_images` WHERE wi_type = 'image' GROUP BY DATE_FORMAT(date_added, '%Y%m');

以上两个查询都返回了我已经提到的相同错误。有人可以指导我我可以解决的问题在哪里。如果有人指导我,我将不胜感激。

mysql 中,您应该设置 sql_mode 而不是 ONLY_FULL_GROUP_BY 来执行您在操作中提到的查询。或者您只能在 group by 子句和一些聚合列中使用 select 列。

您正在使用没有聚合功能的分组。mysql 5.7 中的这种行为是不允许的,您应该在 sql_mode 设置中取消设置 ONLY_FULL_GROUP_BY

如果您不需要重复值,您应该在 select 子句中明确指定您需要的列名,最终使用不同的(没有分组依据)..

否则你应该显式分配列和聚合函数。小心将不在聚合函数中的列分配给 group by 子句