博客
关于我
mysql的sql_mode参数
阅读量:789 次
发布时间:2023-02-13

本文共 819 字,大约阅读时间需要 2 分钟。

数据库报错:In aggregated query without GROUP BY, expression #1 of SELECT list contains nonaggregated column ‘haha.student001.name’; this is incompatible with sql_mode=only_full_group_by

这是一条与MySQL SQL模式相关的报错信息。具体来说,这是因为数据库启用了“ONLY_FULL_GROUP_BY”模式。当在没有GROUP BY子句的情况下使用聚合函数(如SUM、COUNT、MAX等)查询数据时,这种模式会要求SELECT列表中的列要么是聚合函数的参数,要么包含在GROUP BY子句中。

数据库报错的具体表现为:在没有GROUP BY子句的情况下,SELECT列表中包含未聚合的列(如haha.student001.name),这与SQL模式设置为“ONLY_FULL_GROUP_BY”不兼容。

这个问题通常发生在对数据进行聚合操作时,例如使用COUNT、SUM、AVG等函数时。如果没有正确配置数据库或应用程序,可能会触发此报错。

解决方法如下:

  • 首先,需要对MySQL数据库进行相应的修改。可以通过以下SQL命令禁用“ONLY_FULL_GROUP_BY”模式:

    SET sql_mode=(SELECT REPLACE(@@sql_mode,‘ONLY_FULL_GROUP_BY’,‘’));

    这条命令会将当前数据库的SQL模式从“ONLY_FULL_GROUP_BY”中移除,恢复为默认配置。

  • 在完成上述数据库修改后,需要对相关应用程序进行重启。例如,在使用Java连接数据库的Spring Boot项目中,需要重新启动应用程序以确保连接参数能够生效。

  • 简单来说,只需执行上述SQL命令,并对数据库和相关服务进行重启,就能解决此类报错问题。

    转载地址:http://fvdfk.baihongyu.com/

    你可能感兴趣的文章
    mysql客户端工具使用
    查看>>
    MySQL密码忘记,怎么办?
    查看>>
    mysql对同一张表进行查询和赋值更新
    查看>>
    mysql导入数据库出现:Incorrect string value: '\xE7\x82\xB9\xE9\x92\x9F' for column 'chinese' at row 1...
    查看>>
    mysql导入(ibd文件)
    查看>>
    Mysql工作笔记006---Mysql服务器磁盘爆满了_java.sql.SQLException: Error writing file ‘tmp/MYfXO41p‘
    查看>>
    mysql常用命令
    查看>>
    MySQL常用指令集
    查看>>
    MySQL底层概述—2.InnoDB磁盘结构
    查看>>
    MySQL底层概述—3.InnoDB线程模型
    查看>>
    MySQL底层概述—5.InnoDB参数优化
    查看>>
    MySQL底层概述—6.索引原理
    查看>>
    MySQL底层概述—7.优化原则及慢查询
    查看>>
    MySQL底层概述—8.JOIN排序索引优化
    查看>>
    MySQL底层概述—9.ACID与事务
    查看>>
    Mysql建立中英文全文索引(mysql5.7以上)
    查看>>
    MySQL开源工具推荐,有了它我卸了珍藏多年Nactive!
    查看>>
    Mysql当前列的值等于上一行的值累加前一列的值
    查看>>
    MySQL当查询的时候有多个结果,但需要返回一条的情况用GROUP_CONCAT拼接
    查看>>
    MySQL必知必会(组合Where子句,Not和In操作符)
    查看>>