MySQL 8版本报错1055?别慌!💪
最近有小伙伴在使用MySQL 8时遇到了一个头疼的问题——错误提示`1055 - Expression 1 of SELECT list is not in GROUP BY clause`🧐。这其实是MySQL 8对SQL模式进行了更严格的规定,尤其是启用了`ONLY_FULL_GROUP_BY`模式后,查询语句需要确保`SELECT`列表中的非聚合字段必须出现在`GROUP BY`子句中。
例如,你可能写了这样的SQL:
```sql
SELECT name, COUNT() FROM users GROUP BY age;
```
但在MySQL 8中,如果`name`未包含在`GROUP BY`中,就会触发这个错误。解决方法也很简单,要么将`name`添加到`GROUP BY`中,要么通过聚合函数处理`name`字段。
💡比如:
```sql
SELECT MAX(name), COUNT() FROM users GROUP BY age;
```
如果你不想修改SQL逻辑,也可以临时调整SQL模式:
```sql
SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));
```
不过建议尽量遵守规范,这样代码更健壮,也更容易维护。💪
MySQL的强大毋庸置疑,但有时也需要我们花点时间去适应它的规则!🌟
免责声明:本答案或内容为用户上传,不代表本网观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。 如遇侵权请及时联系本站删除。