MySQL 按问题分组

MySQL 按问题分组

我对 MySQL 5.7 中的 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';
set session sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';

这样做可以消除错误并允许我的应用程序运行。

我确实尝试添加:

sql_mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

然而,/etc/mysql/my.cfg这导致了一些问题,因为不再生成自动增量数字,所以所有插入都失败。

现在许多服务器都出现了这种情况,如果任何一台服务器重新启动,那么继续运行查询就会非常麻烦。

有人能帮助我解决这个问题吗?

答案1

MySQL 5.7 文档

要在服务器启动时设置 SQL 模式,请在--sql-mode="modes"命令行或sql-mode="modes"选项文件(如 my.cnf(Unix 操作系统)或 my.ini(Windows))中使用选项。 modes 是用逗号分隔的不同模式的列表。 要明确清除 SQL 模式,请在命令行上使用 --sql-mode="" 或在选项文件中使用 sql-mode="" 将其设置为空字符串。

在您的 中包含引文my.cnf

相关内容