无法禁用 ONLY_FULL_GROUP_BY

Can't disable ONLY_FULL_GROUP_BY

我在 MySQL 5.7.14 上遇到 ONLY_FULL_GROUP_BY 的问题,我似乎无法禁用它,即使我已经设置SQL 模式。

我已经设置了两个@@sql_mode通过运行宁这个命令删除ONLY_FULL_GROUP_BY:

SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));

我还更新了 my.cnf 文件,通过设置 sql-mode 参数将其排除。

如果我 运行 select @@sql_mode 我可以看到 ONLY_FULL_GROUP_BY 不再设置了。

然而,当我 运行 我的存储过程时,我仍然收到此错误:

1055 Expression #1 of SELECT list is not in GROUP BY clause and contains
nonaggregated column 'product_id' which is not functionally dependent on
columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

我在这里错过了什么? SP 是否忽略 sql-模式?

我不想修改 SP 代码,因为它是从第 3 方模块(对于 Magento)安装的,如果我们想升级,那会导致问题。

这是我本地开发服务器的 WAMP。

对于遇到同样问题的任何人,事实证明 sql 模式与存储过程一起存储,所以即使我已经正确更改了 sql 模式,它也没有'根本不更新 SP。为了解决这个问题,我刚刚删除并重新创建了存储过程,同时设置了新的 sql 模式。现在可以正常使用了!

修复此问题并重新创建存储过程 它正在工作。

使用your_schema_name; 删除过程 IF EXISTS your_sp_name;

分隔符 $$ 使用 your_schema_name$$ 创建过程 your_sp_name(IN your_input VARCHAR(50)) 开始

-- 此处为 sp 数据

结束$$

分隔符;