MYSQL5.7版本sql_mode=only_full_group_by问题
2017-08-29 16:45
555 查看
具体出错提示:[Err] 1055 - Expression #1 of ORDER BY clause is not in GROUP BY
clause and contains nonaggregated column
'information_schema.PROFILING.SEQ' which is not functionally dependent
on columns in GROUP BY clause; this is incompatible with
sql_mode=only_full_group_by
解决办法:
1.1. 查看sql_mode.
SELECT @@sql_mode
或:
1.2. 查询出来的值为:
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
SET sql_mode
='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,重新设置值。
上面是改变了全局sql_mode,对于新建的数据库有效。对于已存在的数据库,则需要在对应的数据下执行。
再查看sql_mode.
确实是没有 ONLY_FULL_GROUP了。
永久方法:
修改my.cnf
oneinstack安装的系统,my.cnf在 etc/my.cnf。
vi etc/my.cnf,如果找不到sql_mode,则增加,
sql_mode =STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
重启mysql
service mysqld restart.
再查看:sql_mode.
OK!!!
解释:
修改my.cnf(windows下是my.ini)配置文件,删掉only_full_group_by这一项下载安装的是最新版的mysql5.7.x版本,默认是开启了
一旦开启
因为在
---------- 招募未来大神 -----------------------
如果您有利他之心,乐于帮助他人,乐于分享
如果您遇到php问题,百度且问了其他群之后仍没得到解答
欢迎加入,PHP技术问答群,QQ群:292626152
教学相长!帮助他人,自己也会得到提升!
为了珍惜每个人的宝贵时间,请大家不要闲聊!
愿我们互相帮助,共同进步!
加入时留言暗号,php,ajax,thinkphp,yii...
clause and contains nonaggregated column
'information_schema.PROFILING.SEQ' which is not functionally dependent
on columns in GROUP BY clause; this is incompatible with
sql_mode=only_full_group_by
解决办法:
1.1. 查看sql_mode.
SELECT @@sql_mode
或:
select @@global.sql_mode;
1.2. 查询出来的值为:
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
SET sql_mode
='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,重新设置值。
上面是改变了全局sql_mode,对于新建的数据库有效。对于已存在的数据库,则需要在对应的数据下执行。
再查看sql_mode.
确实是没有 ONLY_FULL_GROUP了。
永久方法:
修改my.cnf
oneinstack安装的系统,my.cnf在 etc/my.cnf。
vi etc/my.cnf,如果找不到sql_mode,则增加,
sql_mode =STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
重启mysql
service mysqld restart.
再查看:sql_mode.
OK!!!
解释:
修改my.cnf(windows下是my.ini)配置文件,删掉only_full_group_by这一项下载安装的是最新版的mysql5.7.x版本,默认是开启了
only_full_group_by模式的,但开启这个模式后,原先的
group by语句就报错,然后又把它移除了。
一旦开启
only_full_group_by,感觉,
group by将变成和
distinct一样,只能获取受到其影响的字段信息,无法和其他未受其影响的字段共存,这样,
group by的功能将变得十分狭窄了
only_full_group_by模式开启比较好。
因为在
mysql中有一个函数:
any_value(field)允许,非分组字段的出现(和关闭
only_full_group_by模式有相同效果)。
---------- 招募未来大神 -----------------------
如果您有利他之心,乐于帮助他人,乐于分享
如果您遇到php问题,百度且问了其他群之后仍没得到解答
欢迎加入,PHP技术问答群,QQ群:292626152
教学相长!帮助他人,自己也会得到提升!
为了珍惜每个人的宝贵时间,请大家不要闲聊!
愿我们互相帮助,共同进步!
加入时留言暗号,php,ajax,thinkphp,yii...
相关文章推荐
- MYSQL5.7版本sql_mode=only_full_group_by问题
- MYSQL5.7版本sql_mode=only_full_group_by问题
- MYSQL5.7版本sql_mode=only_full_group_by问题
- MYSQL5.7版本sql_mode=only_full_group_by问题
- MYSQL5.7版本sql_mode=only_full_group_by问题 5.7就是个坑
- MYSQL5.7版本sql_mode=only_full_group_by问题
- mysql 1055错误的解决办法 【MYSQL5.7版本sql_mode=only_full_group_by问题】
- MYSQL5.7版本sql_mode=only_full_group_by问题
- MYSQL5.7版本sql_mode=only_full_group_by问题
- MYSQL5.7版本sql_mode=only_full_group_by问题
- MYSQL5.7版本sql_mode=only_full_group_by问题
- MySQL 5.7.9版本sql_mode=only_full_group_by问题
- MySQL 5.7版本sql_mode=only_full_group_by问题
- MySQL 5.7.9版本sql_mode=only_full_group_by问题
- MySQL 5.7.9版本sql_mode=only_full_group_by问题
- 解决MySQL 5.7.9版本sql_mode=only_full_group_by问题
- MySQL 5.7.9版本sql_mode=only_full_group_by问题
- 解决MySQL 5.7.9版本sql_mode=only_full_group_by问题,this is incompatible with sql_mode=only_full_group_by错误
- MySQL 报错:5.7版本sql_mode=only_full_group_by问题
- MySql版本问题sql_mode=only_full_group_by解决方案