• 幕客老师召集小伙伴
  • 运维高手36项修炼
  • python自动化运维项目实战
  • nginx从入门到实战
  • 阿里云与Centos7实战

Mysql5.7

在mysql中,查询语句出现如下错误:

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'col_user_6.a.START_TIME' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

原因:

在mysql.5.7版本中,默认将当前全局的SQL_MODE设置为only_full_group_by,通过以下语句可以将当前的SQL_MODE设置为严格模式。

mysql将对不需要group by的字段,进行严格审查。

 

所以对于老的程序代码,应该开发进行对应的sql优化,把不需要select查出来的内容去掉,如果开发不愿意,则需要修改数据库了:

解决方法如下:

set sql_mode=''
 
语句例子:
select id,user_id,province,terminal,lottery_type,type,position,unit_price,date,week,hour,update_time,create_time,count(id) as count,sum(unit_price) as price from ad_show_record_detail where create_time>='2017-09-05 00:00:00' and create_time<='2017-09-05 23:59:59' group by province limit 0,20

 

Mysql5.7

Pingbacks已打开。

引用地址

暂无评论

发表评论