报错现象

执行SQL报错如下:

SELECT student.s_no,student.s_name,SUM(result.mark) FROM student,result WHERE student.s_no=result.s_no GROUP BY student.s_no
> 1055 - Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'db_ketest.student.s_name' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
> 时间: 0.081s

原因

MySQL5.7.5及以上版本有依赖检测功能。如果启用了ONLY_FULL_GROUP_BY SQL模式(默认开启),MySQL将拒绝选择列表,HAVING条件或ORDER BY列表的查询引用在GROUP BY子句中既未命名的非集合列,也不在功能上依赖于它们。(5.7.5之前,MySQL没有检测到功能依赖关系,默认情况下不启用ONLY_FULL_GROUP_BY。)

解决方法

方法一

使用命令行或者数据库客户端执行SQL

1.SQL语句,select @@global.sql_mode查询

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.06 sec)

2.去掉ONLY_FULL_GROUP_BY,重新设置值

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';

方法二

vi修改MySQL配置文件my.cnf

[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

保存配置文件,重启MySQL服务:service mysql restart

End

最新文章

  1. linux(六)__进程与任务控制
  2. vs git extensions简单使用方法
  3. 5.7 NDK开发
  4. elasticsearch-cn-out-of-box
  5. Google 宣布支持中文邮箱地址
  6. JQuery ajax请求一直返回Error(parsererror)
  7. C#_MVC_Repository_CRUD_Model
  8. [转载]MongoDB学习 (五):查询操作符(Query Operators).1st
  9. SQL Server 启用 xp_cmdshell 与bcp 使用
  10. [Leetcode][001] Two Sum (Java)
  11. 搭建Hadoop集群 (二)
  12. android onKeydown
  13. idea 注册机生成密钥代码
  14. protobuf使用NDK编译Android的静态库(工作记录)
  15. C#进阶系列——使用Advanced Installer制作IIS安装包(二:配置安装包依赖项和自定义dll)
  16. SpringMVC简版教程、部分功能
  17. SQL Server中的Merge关键字 更新表数据
  18. JAVA基础——面向对象三大特性:封装、继承、多态
  19. zTree实现获取当前选中的第一个节点在同级节点中的序号
  20. @RunWith注解作用

热门文章

  1. Python日期和时间_什么是Tick_什么是时间元组_获取当前时间
  2. PHP curl_unescape函数
  3. 2019 HL SC day2
  4. dp的本质
  5. MVC + EFCore 项目实战 - 数仓管理系统9 - 数据源管理完结篇
  6. Java 命令行 编译、执行、打包
  7. Codechef May Challenge 2020 Division 1 记录
  8. 导航菜单(动画)--- jQuery
  9. [机器学习] keras:MNIST手写数字体识别(DeepLearning 的 HelloWord程序)
  10. 【模式识别与机器学习】——4.3离散K-L变换