当前位置: 移动技术网 > IT编程>开发语言>PHP > [MySQL] 5.7版本以上group by语句报1055错误问题

[MySQL] 5.7版本以上group by语句报1055错误问题

2019年03月17日  | 移动技术网IT编程  | 我要评论

1. 在5.7版本以上mysql中使用group by语句进行分组时, 如果select的字段 , 不是完全对应的group by后面的字段 , 有其他字段 , 那么就会报这个错误

error 1055 (42000): expression #1 of select list is not in group by clause and contains nonaggregated column

2.这是因为高版本mysql添加了一个sql_mode

查看sql_mode 

select @@sql_mode;

mysql> select @@sql_mode;
+-------------------------------------------------------------------------------------------------------------------------------------------+
| @@sql_mode |
+-------------------------------------------------------------------------------------------------------------------------------------------+
| only_full_group_by,strict_trans_tables,no_zero_in_date,no_zero_date,error_for_division_by_zero,no_auto_create_user,no_engine_substitution |
+-------------------------------------------------------------------------------------------------------------------------------------------+

可以看到有一个only_full_group_by , 这个就是严格控制group by 和select 字段的 , 在不改变sql语句的前提下 , 把这个去掉就可以了

3.我的ubuntu系统下编辑的这个文件 /etc/mysql/conf.d/mysql.cnf  , 其他系统找到对应的配置文件就可以了 ,在[mysqld]块下 ,把sql_mode配置上 , 并且去掉only_full_group_by

sql_mode='strict_trans_tables,no_zero_in_date,no_zero_date,error_for_division_by_zero,no_auto_create_user,no_engine_substitution'

4.此时就正常了

 

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网