mysql 報(bào)錯 incompatible with sql_mode=only_full_group_by解決
使用peewee這個ORM翻譯sql并查詢數(shù)據(jù)
翻譯出來的 sql 如下,可以看到其實(shí)比較不規(guī)范,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
正常情況下,執(zhí)行上面的 sql 應(yīng)該報(bào)錯
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
但是實(shí)際上卻沒有,為什么?
因?yàn)?peewee 創(chuàng)建連接之后,會先執(zhí)行 SET sql_mode='PIPES_AS_CONCAT'
具體可看: peewee 創(chuàng)建連接前的前置操作,wireshark 抓包
以上就是mysql 報(bào)錯 incompatible with sql_mode=only_full_group_by解決的詳細(xì)內(nèi)容,更多關(guān)于mysql incompatible報(bào)錯的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
教你如何在windows與linux系統(tǒng)中設(shè)置MySQL數(shù)據(jù)庫名、表名大小寫敏感
數(shù)據(jù)庫和表名在 Windows 中是大小寫不敏感的,而在大多數(shù)類型的 Unix/Linux 系統(tǒng)中是大小寫敏感的。那么我們?nèi)绾蝸硖幚磉@個問題呢,經(jīng)過一番查詢,發(fā)現(xiàn)lower_case_table_names這個參數(shù)可以實(shí)現(xiàn)大小寫敏感,下面我們來詳細(xì)說明2014-08-08MyBatis攔截器實(shí)現(xiàn)分頁功能的實(shí)現(xiàn)方法
這篇文章主要介紹了MyBatis攔截器實(shí)現(xiàn)分頁功能的實(shí)現(xiàn)方法的相關(guān)資料,希望通過本文大家能夠?qū)崿F(xiàn)這樣的方法,需要的朋友可以參考下2017-10-10MySQL 查詢結(jié)果以百分比顯示簡單實(shí)現(xiàn)
用到了MySQL字符串處理中的兩個函數(shù)concat()和left()實(shí)現(xiàn)查詢結(jié)果以百分比顯示,具體示例代碼如下,感興趣的朋友可以學(xué)習(xí)下2013-07-07Mysql添加聯(lián)合唯一索引及相同數(shù)據(jù)插入報(bào)錯問題
這篇文章主要介紹了Mysql添加聯(lián)合唯一索引及相同數(shù)據(jù)插入報(bào)錯問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-09-09