sql语句中出现groupby报错sql_mode=ONLY_FULL_GROUP_BY的解决
⽅案
1、查看sql_mode
select @@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 2、去掉ONLY_FULL_GROUP_BY,重新设置值。
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';
3、上⾯是改变了全局sql_mode,对于新建的数据库有效。对于已存在的数据库,则需要在对应的数据下执⾏:
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';
以上所述是⼩编给⼤家介绍的MySql版本问题sql_mode=only_full_group_by的完美解决⽅案,希望对⼤家有所帮助.
===========================================================
有同学提出上边这种⽅式数据库重启后设置会失效,确实是这样的,上边这种⽅式只是修改了内存中的值,不能永久改变。
mysql group by order by想要永久解决问题需要在配置⽂件中
[mysqld]下⾯添加这段
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
windows 在安装⽬录下的my.ini ⽂件
Mac 或者Linux 在/ etc/myf 下⾯应该是
总之就是在个⼈mysql配置⽂件中修改
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论