flask_sqlalchemy:1055, Expression #1---this is incompatible with sql_mode=only_full_group_by

1.問題詳情

1.遇到問題的代碼

# 錯誤代碼

result = User.query.group_by(User.username).all()

  • 在使用flask_sqlalchemy的時候,希望分組查詢遇到的問題

2.報錯信息

在這裏插入圖片描述
在這裏插入圖片描述

2.解決方法

1.查看當前數據庫sql_mode設置

//執行如下語句,查看sql_mode的設置情況

select @@sql_mode;

在這裏插入圖片描述

2.修改sql_mode設置

// 執行如下語句,更改當前數據庫sql_mode參數
set @@sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';

  • 其實引號內部就是你上一步驟查詢的結果(去掉ONLY_FULL_GROUP_BY這個字段)
  • 但是,你再次查詢的時候,如果ONLY_FULL_GROUP_BY不在了,那就就成功了。
  • 如果查詢後,發現還是原來的結果,根本沒有生效(即使你重啓了數據庫、重新連接數據庫了)可以使用如下方法

3.修改mysql的配置文件my.cnf

  • Linux下mysql的配置文件爲-----------my.cnf(地址一般爲:/etc/my.cnf)
  • Windows下對應----------------My.ini
// 在my.cnf文件的最後,添加如下一句即可

sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'

注意重啓mysql程序!!!


service mysqld restart

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章