MySQL 8.x group by报错【已解决】

位置:首页>文章>详情   分类: 教程分享   阅读(180)   2024-04-01 10:09:38

在我们使用MySQL的时候总是会遇到各种各样的报错,让人头痛不已。其中有一种报错,sql_mode=only_full_group_by,在升级MySQL 5.7.x和8.x版本后十分常见,每次都是老长的一串出现

 

比如下面的就会报错

select id,aa from tab_test group by aa

 

如果改成这个样子:

select id,aa from tab_test group by id,aa

或者这个样子:

select aa from tab_test group by aa

就不会报错了。

当然,这样子随意的改动代码,我们可能就无法得到想要的信息了。

 

解决办法

MySQL命令行或者工具连接到MySQL,执行下面查询

select @@global.sql_mode;

查询结果

操作示例图-0650fa98018b40288a8581fb734152cb.png

每个人结果可能不同,但是一定有个ONLY_FULL_GROUP_BY的项目,复制出来,把这个项目去掉,然后添加到MySQL的cnf配置文件sql_mode=''里面,参考

[mysqld]

sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';

 

修改完成后重启MySQL服务即可

 

 

标签2: MySQL MySQL8 group by
地址:https://www.leftso.com/article/2403291953554511.html

相关阅读

在我们使用MySQL的时候总是会遇到各种各样的报错,让人头痛不已。其中有一种报错,sql_mode=only_full_group_by,在升级MySQL 5.
测试数据 测试数据SQL: DROP TABLE IF EXISTS `student`; CREATE TABLE `student` ( `id` int(10) UNSIGNED ...
表数据准备Table: Subject_Selection ​ Subject   Semester   Attendee --------------------------------- I...
mysql 5.7.9以后废弃了password字段和password()函数;authentication_string:字段表示用户密码,而authenti
运行篇命令:# docker run -d -v /jenkins/mysql55:/var/lib/mysql -p 3306:3306 --name mysql55 -e MYSQL_ROO...
having的用法having字句可以让我们筛选成组后的各种数据,where字句在聚合前先筛选记录,也就是说作用在group by和having字句前
centos7中mysql配置my.cnf字符集utf-8,mysql5.6中文乱码
mysql 使用utf8mb4字符集后查询非常慢的解决办法
mysql索引的使用基础知识摘录。
MySQL索引优化,MySQL索引类型,MySQL索引怎么用MySQL索引怎么创建这里将会通过一些简单得sql进行讲解