侧边栏壁纸
博主头像
落叶人生博主等级

走进秋风,寻找秋天的落叶

  • 累计撰写 130562 篇文章
  • 累计创建 28 个标签
  • 累计收到 9 条评论
标签搜索

目 录CONTENT

文章目录

MySQL使用group by 报this is incompatible with sql_mod

2024-05-13 星期一 / 0 评论 / 0 点赞 / 99 阅读 / 1737 字

下面是employee表的所有数据。使用group by 分组查询报错this is incompatible with sql_mode=only_full_group_by查看sql_model参

下面是employee表的所有数据。

使用group by 分组查询报错this is incompatible with sql_mode=only_full_group_by

查看sql_model参数发现:
ONLY_FULL_GROUP_BY,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选项开启,那么在使用group by时候, 只能select查询group by后面的选项,或者使用聚合函数。
只查询group by后面的列:

使用聚合函数:

但以上两种方法不推荐!!!
推荐解决方法:
1.临时,重启mysql会失效

set @@GLOBAL.sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
2.修改/etc/my.cnf
[mysqld]
加一行
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即可生效。

广告 广告

评论区