mysql 使用group_by 1055 错误 | sql_mode=only_full_group_by问题

今天在使用group_by时遇到错误,大概是以下样子:

(cymysql.err.InternalError) (1055, "Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated column 
[SQL]CREATETABLE`m_part`(`f_id`INTNOTNULL,`f_name`VARCHAR(20)NULL,PRIMARYKEY(`f_id`))ENGINE=myisamDEFAULTCHARSET=utf8PARTITIONBYRANGE(f_id)(PARTITIONp0VALUESlessTHAN(10),PARTITIONp1VALUESlessTHAN(20))

原因:
mysql5.7.5版本开始,sql_mode使用的是默认值( 如上),而之前使用的mysql配置文件中sql_mode=”“,由于这个特性使在使用group_by时出现报错

linux下解决方案:

修改mysql.conf

sudo vim /etc/mysql/mysql.conf.d/mysql.conf

然后将
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
添加至文件末尾

重启服务:
/etc/init.d/mysql restart

问题解决

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容