mysql 5.6 5.7不兼容_同一条sql在mysql5.6和5.7版本遇到的问题。
之前用的是mysql 5.6版本,執(zhí)行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
其實相對于語法來說,非聚集字段不能出現(xiàn)在查詢列表中,這條sql本身就是錯誤的,那么為什么5.6mysql可以執(zhí)行呢?
找了好久發(fā)現(xiàn)是原來是sql mode的數據庫數據類型的問題。
5.7開始,mysql就開始嚴格遵從SQL 92規(guī)范,凡事沒有遵循規(guī)范的sql都不予執(zhí)行,當然可以通過配置修改成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_SUBSTITUTION5.6版本的值為:STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION
總結
以上是生活随笔為你收集整理的mysql 5.6 5.7不兼容_同一条sql在mysql5.6和5.7版本遇到的问题。的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c语言哈夫曼压缩文本,哈夫曼文本压缩C语
- 下一篇: java并发核心知识体系精讲_Java