记录一次程序查询MYSQL数据库异常
程序执行报错信息如下
SELECT list is not in GROUP BY clause and contains nonaggregated column ‘db_xxx.a.id’ which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
分析
MySQL 版本:5.7.39
mysql中使用了聚合函数后 出现在select列表中的字段可以不用放到group by 分组中 但这里却相反 于是看了下mysql的global.sql_mode数据 发现的确存在only_full_group_by模式 将其修改就可以了 修改模式如下
-- 查看global.sql_mode
SELECT @@global.sql_mode
-- 将值复制出来 然后对其修改 去掉ONLY_FULL_GROUP_BY 剩余的值在放回去
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'