百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术教程 > 正文

SELECT list is not in GROUP BY clause_mysql执行的时候报错了

csdh11 2025-01-07 12:04 5 浏览

如果你一个系统,以前用的是mysql的版本是:5.6.22


然后,后来,你再安装mysql的时候版本变成5.7.32 等等了,其实就是说,以前你用的


mysql版本是5.6.xx,后来用5.7.xx了,这样在你程序没变的时候,就会报这个错误:


\### Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'ydy.t1.birthday' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by ### The error may exist in file [D:\ALLSVN\ydy\YdyBack\target\classes\mapper\UserMapper.xml] ### The error may involve com.company.project.dao.UserMapper.loadUserByUsername-Inline ### The error occurred while setting parameters ### SQL: select IF(birthday=null,0,year(from_days( datediff(now(),birthday)))) as age, t1.*, del_flag as delFlag from user t1 where t1.username = ? group by username ### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'ydy.t1.birthday' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by ; bad SQL grammar []; nested exception is com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'ydy.t1.birthday' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by


怎么解决?


1.先说原因:


MySQL5.7.5后only_full_group_by成为sql_mode的默认选项之一,这可能导致一些sql语句失效。
比如在使用group by进行分组查询报错


2.在sql命令行中输入select @@sql_mode;这时我们能够看到自己的sql_mode配置,其中如果有ONLY_FULL_GROUP_BY,


那它就是group by查询报错的原因了


select @@sql_mode;


?


可以看到我这个5.6.22的机器去查询sql_mode:



?


可以看到,里面就没有:ONLY_FULL_GROUP_BY对吧.


3.然后我再去查看一个:5.7.32的版本去看看:


?


可以看到数据库版本是5.7.32


?


然看看查出来的sql_mode的开头是:ONLY_FULL_GROUP_BY对吧. 就是因为这个导致的上面的错误:


4.解决方法:


直接用这种办法解决就可以了,在windows上,和在linux上面是一样的:


vim /etc/mysql/conf.d/mysql.cnf 编辑配置文件:


可以看到,其实就是把查询出来的,那一段字符串,去掉ONLY_FULL_GROUP_BY,然后又在配置文件mysql.cnf中配置了一下:


在,mysqld这个标签下加上,sql_mode = '' 或者在最下面加上下面的内容都可以的:


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


编辑以后退出就可以了,然后


systemctl restart mysqld


或者:


service mysql restart


重启一下mysql就好了







?

相关推荐

史上最全的 Python 学习资料,PDF 电子书大合集(免费)

史上最全的Python学习资料最近一直有读者问我有没有好的Python学习资料,有没有好的PDF电子书。小白学习Python也有很长的时间了,搜集的资料也有非常多。今天整理了下,全部免...

16 款最佳免费开源 PDF 开发库 | OpenSSH 9.9 发布,默认禁用 DSA 算法

16款最佳免费开源PDF开发库便携式文档格式(PDF)由AdobeSystems于1993年创建,用于文档交换。这种格式包括PostScript页面描述编程语言的子集、字体嵌...

?? 盘点Python入门必备神仙书籍|附pdf

Python编程从入门到实践整本书内容非常丰富,包含python相关基础知识和项目实践部分,基础知识部分基本上讲解了所有python相关的基础知识,实践部分选择了三个案例。非常适合初学者学习Pyth...

Python 3.9.0 官方中文PDF文档,建议收藏,拿走不谢

最新版的Python官方文档!整理好了。领取方式见文末...

Python趣味打怪:60秒学会一个例子,147段代码助你从入门到大师

鱼羊发自凹非寺量子位报道|公众号QbitAI人生苦短,编程苦手,不妨学起Python,感受一飞冲天的快乐。不要害怕学习的过程枯燥无味,这里有程序员jackzhenguo打造的一份中文Pyt...

咸鱼疯传3.6W次!Python16本高清版 PDF初学者的极佳教材荐

【文末有获取方式】【文末有获取方式】...

史上最详细python学习路线-从入门到精通,只需5个月时间

Python是一种功能很强大的语言,对于零基础学习Python还是有难度的,但只要学习方法对,入门还是很快哒。针对Python的初学者,从无到有的Python语言如何入门,主要包括了:Python的简...

硬核!288页Python核心知识笔记(附思维导图,建议收藏)

今天就给大家分享一份288页Python核心知识笔记,相较于部分朋友乱糟糟的笔记,这份笔记更够系统地总结相关知识,巩固Python知识体系。文末获取完整版PDF...

这张思维导图,涵盖Python所有核心知识点,PDF赶快拿走

这张Python思维导图,涵盖了所有的核心知识点,包括基础知识、爬虫、函数、模块、类和对象等,从以往假大空的知识堆砌转变为清晰实用的知识体系...

顶级黑客用5分钟爬的python教程!整整400集,建议收藏

兄弟!毫无套路!!福利分享:1、本套视频一共400集,本套视频共分4季第一季Python基础。...

自学python必看的书籍《Python编程:从入门到实践》PDF拿走不谢

目录...

《Python知识手册》,高清全彩pdf版开放下载

Python编程还不懂?今天我要把我参与编写的这套《Python知识手册》免费分享出来,看完文末有惊喜哦。文末惊喜,记得看完哦!...

1张思维导图,告诉你Python核心知识体系,高清PDF拿走不谢

这张思维导图按顺序依次展示了以下内容的核心知识:基础知识、函数、文件、类和对象、魔方方法、模块、爬虫等内容。每一部分都细致展开解读,化复杂为具体,化零散为整体,尤其适合Python初学者参考学习。Py...

Python 创始人官方发布整套中文PDF文档,足足27本,学习必备!

1...

清华教授熬夜开发的《Python王者归来》高清版PDF开放下载

相信通过这本资料你可以轻松学会Python语法与应用,并逐步向Python高手之路迈进!...