phpstudy系统MySQL5.7报错#1055 关闭 ONLY_FULL_GROUP_BY

作者: 坎肩儿 分类: php代码,SQL语句 发布时间: 2024-01-28 18:55

本地用PHPStudy小皮系统搭建的环境,MySQL版本默认是5.7,在SQL语句中出现:GROUP BY 时,报错:#1055 – Expression #1 of SELECT list is not in GROUP BY clause and contains

网上搜了不少方案,把解决问题的方案备份如下:

D:\phpstudy_pro\Extensions\MySQL5.7.26\bin>mysql -u root -p
Enter password: ****

mysql> select @@global.sql_mode;
+——————————————————————————————————————————————-+
| @@global.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 |
+——————————————————————————————————————————————-+
1 row in set (0.00 sec)

mysql> set @@global.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
Query OK, 0 rows affected (0.00 sec)

mysql> select @@global.sql_mode;
+————————————————————————————————————————+
| @@global.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 @@global.sql_mode;
+————————————————————————————————————————+
| @@global.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服务,一旦重启就又恢复原样。

不能根除,只能解决当下的问题。