set GLOBAL.sql_mode
时间: 2024-04-24 16:25:31 浏览: 16
您好!我是C知道,一个基于CSDN开发的AI助手。很高兴能为您提供帮助!
关于您的问题,您可以使用以下命令来设置MySQL的全局sql_mode:
```
SET GLOBAL sql_mode = 'mode_value';
```
其中,mode_value是您想要设置的sql_mode值。请注意,需要具有适当的权限才能执行此操作。
相关问题
SELECT a.comm_id, c.Title house_keeper_name, ( SELECT build.id FROM erp_base.tb_base_masterdata_resource AS resource INNER JOIN erp_base.tb_base_masterdata_resource AS unit ON unit.id = resource.parent_id INNER JOIN erp_base.tb_base_masterdata_resource AS build ON build.id = unit.parent_id WHERE resource.id = a.resource_id ) resource_group FROM tb_charge_receipts_detail a LEFT JOIN erp_base.tb_base_masterdata_resource b ON b.id = a.resource_id LEFT JOIN erp_base.rf_dictionary c ON b.house_keeper = c.id GROUP BY a.comm_id,c.Title,resource_group 这个sql在mysql中报this is incompatible with sql_mode=only_full_group_by是为什么该怎么改
该错误是因为 MySQL 的版本更新,默认启用了 `ONLY_FULL_GROUP_BY` 模式,这种模式下,`GROUP BY` 必须包含所有非聚合字段。
在这个 SQL 语句中,`SELECT` 子句中的字段 `resource_group` 不在 `GROUP BY` 中,因此 MySQL 报错。
解决这个问题的方法有两个:
1. 关闭 `ONLY_FULL_GROUP_BY` 模式
可以通过修改 MySQL 的配置文件 `my.cnf` 或者在命令行中输入如下语句来关闭该模式:
```
SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));
```
这种方法会影响到整个 MySQL 实例的行为,需要谨慎使用。
2. 将 `SELECT` 子句中的所有字段都放入 `GROUP BY` 中
可以将 SQL 语句修改为:
```
SELECT a.comm_id, c.Title as house_keeper_name, (
SELECT build.id
FROM erp_base.tb_base_masterdata_resource AS resource
INNER JOIN erp_base.tb_base_masterdata_resource AS unit ON unit.id = resource.parent_id
INNER JOIN erp_base.tb_base_masterdata_resource AS build ON build.id = unit.parent_id
WHERE resource.id = a.resource_id
) as resource_group
FROM tb_charge_receipts_detail a
LEFT JOIN erp_base.tb_base_masterdata_resource b ON b.id = a.resource_id
LEFT JOIN erp_base.rf_dictionary c ON b.house_keeper = c.id
GROUP BY a.comm_id, c.Title, resource_group;
```
这种方法会使 SQL 语句更加冗长,但不会影响 MySQL 的全局设置。
'mydb.tb3.part_image_url'; this is incompatible with sql_mode=only_full_group_by
要解决这个问题,您需要进行以下步骤:
1. 使用引用中的命令在指定的路径上创建名为"mydb"的数据库。这将创建一个新的数据库并将其存储在指定的目录中。
2. 使用引用中的命令更新数据库配置,将AUTO_RUNSTATS设置为ON,并将AUTO_MAINT设置为OFF。这将启用自动运行统计信息收集,并禁用自动维护。
3. 您还需要检查当前的sql_mode设置是否为"only_full_group_by"。如果是,则需要将其更改为允许包含非聚合列的查询。可以通过设置以下命令来完成此操作:
SET GLOBAL sql_mode = '其他模式值';
请确保将"其他模式值"替换为允许包含非聚合列的适当模式值。
4. 重新启动数据库以应用更改。
最后,再次执行您的查询,应该不再收到与sql_mode=only_full_group_by不兼容的错误消息。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [731](https://blog.csdn.net/steferwang/article/details/4282758)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)