sql_mode=NO_ENGINE_SUBSTITUTION
今天在测试库上发现使用GROUP BY 报错,我使用的mysql5.7
ONLY_FULL_GROUP_BY
对于GROUP BY聚合操作,如果在SELECT中的列、HAVING或者ORDER BY子句的列,没有在GROUP BY中出现,那么这个SQL是不合法的。是可以理解的,因为不在 group by 的列查出来展示会有矛盾。
在5.7中默认启用ONLY_FULL_GROUP_BY
而不是sql_mode=NO_ENGINE_SUBSTITUTION,所以在5.6升级到5.7的过程需要注意。
一些小坑的配置都在sql_mode 一定要了解自己使用的版本对应的配置
参考文档:https://segmentfault.com/a/1190000005936172
官方文档:https://dev.mysql.com/doc/refman/5.6/en/sql-mode.html
记一个新数据迁移的sql
INSERT INTO 库A.表A ( 表A.`id`, 表A.`name`) ( SELECT 表B.`number`, 表B.`title` FROM 库B.表B )