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