您好,欢迎访问一九零五行业门户网

在MySQL 5.7上使用group by语句出现1055错误问题

本文的主要内容是讲述在mysql 5.7上使用group by语句出现1055错误的问题分析以及解决办法,有需要的朋友可以看一下。
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_pision_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_pision_by_zero,no_auto_create_user,no_engine_substitution'
4.此时就正常了
相关教程:mysql视频教程
以上就是在mysql 5.7上使用group by语句出现1055错误问题的详细内容。
其它类似信息

推荐信息