MySQL报错:sql_mode=only_full_group_by解决方法

warning: 这篇文章距离上次修改已过183天,其中的内容可能已经有所变动。

解释:

MySQL中的sql_mode=ONLY_FULL_GROUP_BY模式要求SELECT查询中的所有列,除了在AGGREGATE函数中使用的列,都必须在GROUP BY子句中声明。这是为了确保查询结果的准确性和一致性,因为在默认的SQL标准下,GROUP BY子句的行为是未定义的。

解决方法:

  1. 修改查询语句,确保所有非聚合列都包含在GROUP BY子句中。
  2. 临时或永久关闭ONLY_FULL_GROUP_BY模式。

关闭ONLY_FULL_GROUP_BY的方法:

临时关闭(仅影响当前会话):




SET sql_mode = (SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));

永久关闭(需要在MySQL配置文件中设置):

找到MySQL配置文件my.cnfmy.ini(通常位于/etc/my.cnf/etc/mysql/my.cnfC:\ProgramData\MySQL\MySQL Server X.Y\my.ini)。

编辑配置文件,注释掉或删除包含sql_mode='ONLY_FULL_GROUP_BY'的行。

添加或修改sql_mode的值,移除ONLY_FULL_GROUP_BY




[mysqld]
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION

保存配置文件,重启MySQL服务。

请注意,关闭ONLY_FULL_GROUP_BY可能会导致查询结果的不一致性,因此在实际生产环境中应谨慎操作。如果可能,最好是修改查询语句以满足ONLY_FULL_GROUP_BY要求。

最后修改于:2024年08月23日 10:27

评论已关闭

推荐阅读

DDPG 模型解析,附Pytorch完整代码
2024年11月24日
DQN 模型解析,附Pytorch完整代码
2024年11月24日
AIGC实战——Transformer模型
2024年12月01日
Socket TCP 和 UDP 编程基础(Python)
2024年11月30日
python , tcp , udp
如何使用 ChatGPT 进行学术润色?你需要这些指令
2024年12月01日
AI
最新 Python 调用 OpenAi 详细教程实现问答、图像合成、图像理解、语音合成、语音识别(详细教程)
2024年11月24日
ChatGPT 和 DALL·E 2 配合生成故事绘本
2024年12月01日
omegaconf,一个超强的 Python 库!
2024年11月24日
【视觉AIGC识别】误差特征、人脸伪造检测、其他类型假图检测
2024年12月01日
[超级详细]如何在深度学习训练模型过程中使用 GPU 加速
2024年11月29日
Python 物理引擎pymunk最完整教程
2024年11月27日
MediaPipe 人体姿态与手指关键点检测教程
2024年11月27日
深入了解 Taipy:Python 打造 Web 应用的全面教程
2024年11月26日
基于Transformer的时间序列预测模型
2024年11月25日
Python在金融大数据分析中的AI应用(股价分析、量化交易)实战
2024年11月25日
AIGC Gradio系列学习教程之Components
2024年12月01日
Python3 `asyncio` — 异步 I/O,事件循环和并发工具
2024年11月30日
llama-factory SFT系列教程:大模型在自定义数据集 LoRA 训练与部署
2024年12月01日
Python 多线程和多进程用法
2024年11月24日
Python socket详解,全网最全教程
2024年11月27日