同一条sql在mysql5.6和5.7版本遇到的问题。
2024-09-03 00:01:45
之前用的是mysql 5.6版本,执行select * from table group by colunm 是可以出结果的,
但是切换的5.7版本,这条sql就报错,
Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column 'information_schema.xxxxx.SEQ' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
其实相对于语法来说,非聚集字段不能出现在查询列表中,这条sql本身就是错误的,那么为什么5.6mysql可以执行呢?
找了好久发现是原来是sql mode的数据库数据类型的问题。
5.7开始,mysql就开始严格遵从SQL 92规范,凡事没有遵循规范的sql都不予执行,当然可以通过配置修改成5.6版本的值,但是本人不建议这么做。
可以通过sql查询出当前sql mode值
select @@GLOBAL.sql_mode;-- 查询全局值
select @@SESSION.sql_mode; -- 查询当前会话值
5.7版本的值为: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
5.6版本的值为:STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION
最新文章
- Mac 安装 MySQL
- Android: 触屏fling/scroll/drag的区别及其详细过程
- PHP中对数据库操作的封装
- Eziriz.Net.Reactor使用注意事项
- heidsoft logo
- NDIS IM 驱动那些事情
- redis的hash操作在集中式session中的应用
- WordPress D8 主题当中截取文章首图并显示的函数
- mac下的改装人生——制作mac os 启动盘
- EF简介
- MVVM模式下 DataTemplate 中控件的绑定
- 【C语言编程练习】7.1 线型表就地逆置
- Ubuntu16.04安装MongoDB的Ruby驱动
- centos7 tomcat8+jdk1.8
- nodejs + typescirpt + vs code
- jmeter之ip欺骗
- CAD常用的快捷键命令
- html的textarea默认文案实现换行
- Extjs4处理后台json数据中日期和时间的方法
- 1008. [HNOI2008]越狱【快速幂】
热门文章
- 故障案例:主从同步报错Fatal error: The slave I/O thread stops because master and slave have equal MySQL server
- 牛客NOIP提高组(二)题解
- 1044 拦截导弹 1999年NOIP全国联赛提高组 个人博客:attack.cf
- Kendo MVVM 数据绑定(五) Events
- ABAP事件分类
- JS根据选择的日期计算年龄
- Js中的字符串/数组中常用的操作
- HDU 4055 The King’s Ups and Downs(DP计数)
- MYSQL内置函数总结
- OpenCascade:Topo类型转换