mysql 报错 incompatible with sql_mode=only_full_group_by解决
作者:ponponon
这篇文章主要为大家介绍了mysql 报错 incompatible with sql_mode=only_full_group_by解决方法,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
使用peewee这个ORM翻译sql并查询数据
翻译出来的 sql 如下,可以看到其实比较不规范,group by 里面只有 track_source_id,但是 select 里面却有
parser_name、error_class_name、track_source_id
select `t1`.`parser_name`, `t1`.`error_class_name`, `t1`.`track_source_id`, COUNT('*') as `task_count` from `parse_monitoring_detail` as `t1` where (`t1`.`success` = 0) group by `t1`.`track_source_id` order by `task_count` desc
正常情况下,执行上面的 sql 应该报错
SQL 错误 [1055] [42000]: Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'crawler2.t1.parser_name' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
但是实际上却没有,为什么?
因为 peewee 创建连接之后,会先执行 SET sql_mode='PIPES_AS_CONCAT'
具体可看: peewee 创建连接前的前置操作,wireshark 抓包
以上就是mysql 报错 incompatible with sql_mode=only_full_group_by解决的详细内容,更多关于mysql incompatible报错的资料请关注脚本之家其它相关文章!
您可能感兴趣的文章:
- Mysql5.7及以上版本 ONLY_FULL_GROUP_BY报错的解决方法
- MySQL错误提示:sql_mode=only_full_group_by完美解决方案
- 解决MySql版本问题sql_mode=only_full_group_by
- MySQL报错:sql_mode=only_full_group_by的4种轻松解决方法(含举例)
- mysql报错sql_mode=only_full_group_by解决
- mysql 8.0 找不到my.ini配置文件以及报sql_mode=only_full_group_by解决方案
- 解决mysql @@sql_mode问题---only_full_group_by
- mysql ONLY_FULL_GROUP_BY设置sql_mode无效排查问题(windows)
- MySQL中ONLY_FULL_GROUP_BY模式的使用