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

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