mysql:关闭sql_mode=ONLY_FULL_GROUP_BY模式
要在MySQL中关闭ONLY_FULL_GROUP_BY
模式,你可以将sql_mode
设置为不包含该模式的值。这可以通过以下两种方式之一完成:
在MySQL服务器启动时设置:
你可以在
my.cnf
(或my.ini
在Windows上)配置文件中设置sql_mode
。找到[mysqld]
部分,然后添加或修改sql_mode
行如下:[mysqld] sql_mode=''
修改配置文件后,重启MySQL服务器。
在当前会话中动态设置:
你可以在当前的MySQL会话中直接设置
sql_mode
变量。执行以下SQL命令:SET sql_mode = '';
这将清空所有的SQL模式,关闭
ONLY_FULL_GROUP_BY
。如果你只想关闭这一个模式,而不影响其他模式,你可以执行以下命令:SET sql_mode = @@sql_mode REGEXP 'ONLY_FULL_GROUP_BY' ? '': SET sql_mode = CONCAT(@@sql_mode, ',NO_AUTO_CREATE_USER');
请注意,关闭ONLY_FULL_GROUP_BY
可能会导致查询结果中包含非聚合列值的不确定性,只在你完全理解这样做的后果并且它符合你的业务逻辑时使用。
评论已关闭