ITPub博客

首页 > 数据库 > MySQL > mysql sql_mode ONLY_FULL_GROUP_BY

mysql sql_mode ONLY_FULL_GROUP_BY

原创 MySQL 作者:哎呀我的天呐 时间:2022-08-04 13:38:07 0 删除 编辑

sql_mode

mysql> select @@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 |
+------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
mysql> select distinct empno from EMP order by deptno ;
+-------+
| empno |
+-------+
|     1 |
|     0 |
+-------+
2 rows in set (0.02 sec)
mysql> set 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';
Query OK, 0 rows affected (0.01 sec)
mysql> select distinct empno from EMP order by deptno ;
ERROR 3065 (HY000): Expression #1 of ORDER BY clause is not in SELECT list, references column 'test.EMP.DEPTNO' which is not in SELECT list; this is incompatible with DISTINCT
mysql>

5.6之前默认非严格的分组函数,5.7开始默认是严格的聚合函数,通过ONLY_FULL_GROUP_BY控制

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29990276/viewspace-2908962/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
https://cloud.tencent.com/developer/inventory/14362

注册时间:2014-10-30

  • 博文量
    403
  • 访问量
    2528861