我正在尝试在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
答案 0 :(得分:2)
您需要将它们都放在以,
分隔的引号中。否则,您将在运行第二个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)