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