MySQL 5.7 ❤️ 报错1055解决方案 🛠️

导读 最近在使用MySQL 5.7.9时,遇到了一个恼人的错误——[Err] 1055。这个错误通常出现在查询语句中,提示“Non-grouping field is not f...

最近在使用MySQL 5.7.9时,遇到了一个恼人的错误——[Err] 1055。这个错误通常出现在查询语句中,提示“Non-grouping field is not functionally dependent on grouping field”。简单来说,就是你在一个SELECT语句中使用了非聚合字段,而这些字段又不在GROUP BY子句中。这在MySQL 5.7及以上版本中默认是不允许的。

解决方法其实很简单:如果你确实需要返回非分组字段的数据,可以修改SQL模式,禁用ONLY_FULL_GROUP_BY。只需在MySQL配置文件中添加以下内容即可:

```sql

SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));

```

或者临时修改当前会话的SQL模式:

```sql

SET SESSION sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));

```

不过,建议在生产环境中谨慎操作,因为这可能会带来数据不一致的风险。如果可能的话,最好调整你的查询逻辑,确保所有非聚合字段都包含在GROUP BY子句中。这样不仅能解决问题,还能提高代码的可读性和稳定性!🌟