【问题标题】:How to enable ONLY_FULL_GROUP_BY in MySQL如何在 MySQL 中启用 ONLY_FULL_GROUP_BY
【发布时间】:2019-09-04 14:16:47
【问题描述】:

我使用SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY','')); 禁用了ONLY_FULL_GROUP_BY。现在我想恢复默认设置。

是否可以在 MySQL 中再次启用ONLY_FULL_GROUP_BY

提前致谢

【问题讨论】:

  • 您可以查看此链接:tableplus.io/blog/2018/08/…
  • 您知道禁用ONLY_FULL_GROUP_BY 可能会导致无效 查询结果对吗?当您以无效方式使用GROUP BY

标签: mysql group-by mariadb


【解决方案1】:

为避免其他配置出现问题,请使用 CONCAT:

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

【讨论】:

    【解决方案2】:

    如果您使用 Laravel,您可以在运行时执行此操作,而不是进行全局设置

    //disable ONLY_FULL_GROUP_BY
    DB::statement("SET sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));");
    
    //Your SQL goes here - The one throwing the error (:
    
    //re-able ONLY_FULL_GROUP_BY
    DB::statement("SET sql_mode=(SELECT CONCAT(@@sql_mode, ',ONLY_FULL_GROUP_BY'));");
    

    【讨论】:

      猜你喜欢
      • 2018-09-02
      • 1970-01-01
      • 2017-10-08
      • 1970-01-01
      • 2018-06-17
      • 2017-03-30
      • 1970-01-01
      • 1970-01-01
      • 2020-08-22
      相关资源
      最近更新 更多