我正在尝试在 MySQL 上设置两个 sql_modes,但是当我设置第二个时,第一个将被替换:
SET sql_mode=ONLY_FULL_GROUP_BY;
并检查 MySQL 中当前的 sql_mode:
------------------ |SELECT @@sql_mode | ------------------ |ONLY_FULL_GROUP_BY| ------------------
当我尝试设置另一种模式(我也想获得 ONLY_FULL_GROUP_BY)时,我这样做:
SET sql_mode=PIPES_AS_CONCAT
再次检查 MySQL 中当前的 sql_mode,但我注意到只设置了 1 个 sql_mode:
------------------ |SELECT @@sql_mode | ------------------ |PIPES_AS_CONCAT | ------------------
我想要得到:
------------------ |SELECT @@sql_mode | ------------------ |ONLY_FULL_GROUP_BY| ------------------ |PIPES_AS_CONCAT | ------------------
知道发生了什么吗?
我还检查了How can I see the specific value of the sql_mode?和 SQL Mode
最佳答案
您需要将它们放在引号中,并用 ,
分隔。否则,当您运行第二个 set
命令时,您将覆盖该设置。
mysql> set sql_mode="PIPES_AS_CONCAT,ONLY_FULL_GROUP_BY";
Query OK, 0 rows affected (0.00 sec)
mysql> show variables like '%sql_mode%';
+---------------+------------------------------------+
| Variable_name | Value |
+---------------+------------------------------------+
| sql_mode | PIPES_AS_CONCAT,ONLY_FULL_GROUP_BY |
+---------------+------------------------------------+
1 row in set (0.00 sec)
关于mysql - MySQL 中可以同时有超过 1 个 sql_mode 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31867363/