下载安装的是最新版的mysql5.7.x版本,默认是开启了 only_full_group_by 模式的,但开启这个模式后,原先的 group by 语句就报错,然后又把它移除了。

一旦开启 only_full_group_by ,感觉,group by 将变成和 distinct 一样,只能获取受到其影响的字段信息,无法和其他未受其影响的字段共存,这样,group by 的功能将变得十分狭窄了

only_full_group_by 模式开启比较好。

因为在 mysql 中有一个函数: any_value(field) 允许,非分组字段的出现(和关闭 only_full_group_by 模式有相同效果)注意:其他低版本mysql可能没有any_value函数。

具体出错提示:

[Err] 1055 - Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column 'information_schema.PROFILING.SEQ' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

1、查看sql_mode

01
select @@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

2、去掉ONLY_FULL_GROUP_BY,重新设置值。

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

3、上面是改变了全局sql_mode,对于新建的数据库有效。对于已存在的数据库,则需要在对应的数据下执行:

1
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查询语句中不需要group by的字段上使用any_value()函数

二:修改my.cnf(windows下是my.ini)配置文件,删掉only_full_group_by这一项

若我们项目的mysql里面并没有sql_mode这一配置项,首先查询出来之后再my.ini文件中指定

1
select @@sql_mode;

这样就可以查出sql_mode的值,复制这个值,在my.cnf中添加配置项(把查询到的值删掉only_full_group_by这个选项,其他的都复制过去):

1
sql_mode=STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION;

如果 [mysqld] 这行被注释掉的话记得要打开注释。然后重重启mysql服务

注:使用命令

1
set sql_mode=STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

这样可以修改一个会话中的配置项,在其他会话中是不生效的。  

最新文章

  1. 利用Vue.js实现拼图游戏
  2. 用PowerMock mock 由工厂方法产生的对象
  3. Pycharm注册码(2016.2)
  4. Balance - 七夕悠然
  5. C语言杂谈(三)存储类别
  6. Java基础之一组有用的类——使用正则表达式查找和替换(SearchAndReplace)
  7. android sdk manager无法更新(2014-11-6测试OK)--自己收藏用
  8. Problems running django-admin
  9. Messages.pas里的消息
  10. JS 实现取整
  11. DECIMAL Data Type
  12. linux下的watch命令
  13. 汇编指令-MOV与ldr区别(7)
  14. 谈下spring下的 aop日志记录
  15. python粗谈面向对象(一)
  16. PermGen space 内存溢出
  17. java 中数据的强制转换 和计算的补码运算
  18. Spark RDD 默认分区数量 - repartitions和coalesce异同
  19. apache 服务器配置
  20. 请求(Request)的参数(Param)里包含特殊字符(#等)的正确处理方式

热门文章

  1. mysql 表设计时的update_time自动更新
  2. InstallShield详细制作说明(二)
  3. [USACO08JAN]电话线Telephone Lines(分层图)/洛谷P1948
  4. 【Good Bye 2017 C】 New Year and Curling
  5. 【Codeforces Round #452 (Div. 2) D】Shovel Sale
  6. [NPM] Update published npm packages using np
  7. Python编写Appium测试用例(2)
  8. postman--基本使用1
  9. 如何安装Python环境以及为Visual Studio 2012安装Python插件
  10. 百度ueditor vue项目应用 -- 图片上传源码修改