MySql版本问题sql_mode=only_full_group_by的完美解决方案
程序员文章站
2022-03-09 10:45:12
...
某个员工信息表结构和数据如下:
id name dept salary edlevel hiredate
1 张三 开发部 2000 3 2009-10-11
2 李四 开发部 2500 3 2009-10-01
3 王五 设计部 2600 5 2010-10-02
4 王六 设计部 2300 4 2010-10-03
5 马七 设计部 2100 4 2010-10-06
6 赵八 销售部 3000 5 2010-10-05
7 钱九 销售部 3100 7 2010-10-07
8 孙十 销售部 3500 7 2010-10-06
例如,我想列出每个部门最高薪水的结果,sql语句如下:
SELECT DEPT, MAX(SALARY) AS MAXIMUM
FROM STAFF
GROUP BY DEPT
结果出现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 5.7.9版本sql_mode=only_full_group_by问题
-
MYSQL5.7版本sql_mode=only_full_group_by问题,重启有效的方法
-
Ubuntu Server 16.04安装MySQL设置远程访问出现问题的完美解决方案(error:10061)
-
刨根问底,完美解决Django2版本连接MySQL报错的问题
-
MySQL5.7.9版本sql_mode=only_full_group_by问题的解决办法
-
MySql版本问题sql_mode=only_full_group_by解决方案
-
MySql版本问题sql_mode=only_full_group_by的完美解决方案
-
解决MySQL 5.7.9版本sql_mode=only_full_group_by问题
-
刨根问底,完美解决Django2版本连接MySQL报错的问题