MySQL5.7后将sql_mode的ONLY_FULL_GROUP_BY模式默认设置为打开状态,这样一来,很多之前的sql语句可能会出现错误,错误信息如下:

Error Code: 1055. Expression #3 of SELECT list is not in GROUP BY clause and contains nonaggregated column '×××' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

描述:select的列都要在group中,或许本身是聚合列(SUM,AVG,MAX,MIN)才行

解决方案一:

这时我们可以通过navicat或workbench输入select @@global.sql_mode来查看当前数据库的sql_mode属性值

复制查询结果,去掉ONLY_FULL_GROUP_BY,重新赋值,执行成功后,就可以将ONLY_FULL_GROUP_BY模式默认设置为关闭状态,解决之前的sql报错问题

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'

但是这种方式设置的只是当前会话中的sql_model,服务器重启后,设置可能会失效。设置永久生效模式可参考博客:https://www.cnblogs.com/zenghui940/p/4361941.html

解决方案二:

MySQL有any_value(field)函数,他主要的作用就是抑制ONLY_FULL_GROUP_BY值被拒绝

官方有介绍,地址:https://dev.mysql.com/doc/refman/5.7/en/miscellaneous-functions.html#function_any-value

我们可以把select语句中查询的属性(除聚合函数所需的参数外),全部放入any_value(field)函数中;

例如:select name,any_value(sex) from test_table group by name

这样sql语句不管是在ONLY_FULL_GROUP_BY模式关闭状态还是在开启模式都可以正常执行,不被mysql拒绝。

本人小白,如果表述的难以理解可查看博客:http://www.ywnds.com/?p=8184

mysql5.7 only_full_group_by_MySQL5.7默认打开ONLY_FULL_GROUP_BY模式问题与解决方案相关推荐

  1. MySQL5.7默认打开ONLY_FULL_GROUP_BY模式问题与解决方案

    MySQL5.7默认打开ONLY_FULL_GROUP_BY模式问题与解决方案 参考文章: (1)MySQL5.7默认打开ONLY_FULL_GROUP_BY模式问题与解决方案 (2)https:// ...

  2. mysql 5.7 full_MySQL5.7默认打开ONLY_FULL_GROUP_BY 解决方案

    MySQL5.7后将sql_mode的ONLY_FULL_GROUP_BY模式默认设置为打开状态,这样一来,很多之前的sql语句可能会出现错误,错误信息如下: Error Code: 1055. Ex ...

  3. 360安全浏览器,默认打开 极速模式。

    360极速浏览器的兼容模式下是IE几,这个是根据你电脑的装的IE版本是多少它就是多少, 它都是调用同一个内核,可能是设置了怪异文档模式:标准模式(strict mode)和怪异模式(quirks mo ...

  4. 如何将Chrome谷歌浏览器的桌面快捷方式和任务栏快捷方式设置成默认打开无痕模式

    1.桌面Chrome谷歌浏览器的快捷方式设置成默认打开模式为无痕模式 第一步:在桌面上找到Chrome谷歌浏览器图标,右击鼠标,点击最下方属性(R) 第二步:在属性内点击上方菜单栏-[快捷方式],找到 ...

  5. .py默认打开方式修改为cmd之后无法改回,始终默认打开方式灰显的解决方案(其他文件类型方法同)

    问题背景: 初学Python,使用 认用cmd.exe打开.py文件,导致默认打开方式灰显无法改回. 摸索查找解决方案不易,耗费时间,特此总结经验分享给大家,望有帮助! 疑问请留言,转载请注出处,谢谢 ...

  6. Chrome浏览器默认打开无痕模式

    解决Chrome打开新的tab页面时展示略缩图 首先在自己的桌面上找到Chrome的快捷方式,右键并选择属性,弹出如下所示的页面 弹出页面中选择快捷方式,并找到目标 C:\Users\Dust\App ...

  7. Android修改user版本默认关闭开发者选项模式,eng版本默认打开开发者选项模式

    本文基于Android5.1 packages/apps/Settings/src/com/android/settings/DevelopmentSettings.java @Overridepub ...

  8. 开发网站时解决360浏览器的兼容性问题,兼容模式打不开,让网页默认为极速模式打开

    360浏览器打开网页默认是兼容模式,导致有些网页打不开, 可以在网页头部加上代码,默认改为为极速模式打开,就正常了: <meta http-equiv="X-UA-Compatible ...

  9. mysql5.7 only_full_group_by_Mysql5.7及以上版本 ONLY_FULL_GROUP_BY报错的解决方法

    近期在开发过程中,因为项目开发环境连接的mysql数据库是阿里云的数据库,而阿里云的数据库版本是5.6的.而测试环境的mysql是自己安装的5.7.因此在开发过程中有小伙伴不注意写了有关group b ...

最新文章

  1. 【Android 逆向】frida 框架安装 ( 设置 Python 3.7 版本 | 安装 frida 12.7.5 版本 | 安装 frida-tools 5.1.0 版本 )
  2. php flock 都是true_php并发处理的几种方法
  3. spwm逆变器双极性matlab教程,三相逆变器双极性SPWM调制技术的仿真(论文资料).doc...
  4. Vue 实现ToDoList
  5. Flink SQL Client的datagen的用法(转载+自己验证)
  6. qt5.9.0调试如何查看变量的值_深入了解 Java 调试
  7. MySQL工作笔记-检索出某一时间段中的数据,并更新
  8. eclipse报错:An error has occurred. See error log for more details. java.lang.NullPointerException
  9. 以太坊eip150和eip158
  10. 对CSS选择器的理解
  11. c语言指针动态分配数组长度,C语言安全之数组长度与指针实例解析
  12. 云呐-工单管理制度及流程,工单管理规范
  13. Telink IDE 泰凌微IDE C语言静态库的生成和使用
  14. 【AtCoder】AGC007
  15. Firefox火狐浏览器关闭更新提示
  16. PhoneWindowManager().interceptKeyBeforeQueueing()中的interactive变量值的来源
  17. 《富爸爸穷爸爸》读书摘录脑图
  18. [RFID]IC卡克隆(四)Proxmark3全卡克隆已解密的IC卡
  19. 触发器一(触发器简介)
  20. python基础环境配置教程

热门文章

  1. 诺丁汉大学高级计算机科学,诺丁汉大学博士生奖学金介绍
  2. java patterncompiler_PatternCompiler是干什么用的?
  3. controller如何保证当前只有一个线程执行_今天我们来聊一聊 Spring 中的线程安全性...
  4. 使用正则表达式进行高效的测试
  5. 2020-12-06
  6. python-web自动化-Python+Selenium之expected_conditions:各种判断
  7. 【npm第4期】文件系统操作的跨平台兼容
  8. 网站真分页js代码该怎么写?
  9. ***博客系统文章的数据库存储方式
  10. 使用git进行源代码管理