在 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 子句
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 子句