当前位置: 代码网 > it编程>数据库>Mysql > 解决mysql @@sql_mode问题---only_full_group_by

解决mysql @@sql_mode问题---only_full_group_by

2024年09月04日 Mysql 我要评论
运行环境linux ubuntu 14.0.4.3数据库 mysql 5.7.0系统运行出现的问题报错如下:expression #2 of select list is not in group b

运行环境

  • linux ubuntu 14.0.4.3
  • 数据库 mysql 5.7.0

系统运行出现的问题

报错如下:

expression #2 of select list is not in group by clause and contains
nonaggregated column ‘sss.month_id’ which is not functionally
dependent on columns in group by clause; this is incompatible with
sql_mode=only_full_group_by

上度娘查询的结果

问题出现的原因:

mysql 5.7.5及以上功能依赖检测功能。

如果启用了only_full_group_by sql模式(默认情况下),mysql将拒绝选择列表,having条件或order by列表的查询引用在group by子句中既未命名的非集合列,也不在功能上依赖于它们。

(5.7.5之前,mysql没有检测到功能依赖关系,默认情况下不启用only_full_group_by。

有关5.7.5之前的行为的说明,请参见“mysql 5.6参考手册”。)

提供两个解决方案

方案一(只适合暂时解决性的,mysql 重启就一朝回到解放前了)

1.用sql语句查询 select @@global.sql_mode

查询出来的值为:

only_full_group_by,strict_trans_tables,no_zero_in_date,no_zero_date,error_for_division_by_zero,no_auto_create_user,no_engine_substitution

2.去掉only_full_group_by,重新设置值。

set @@global.sql_mode
='strict_trans_tables,no_zero_in_date,no_zero_date,error_for_division_by_zero,no_auto_create_user,no_engine_substitution';

方案二(修改mysql 中的配置文件,达到当重启mysql 回去制动加载配置文件的内容)

1.通过linux 命令 【whereis mysql 】找到mysql 的配置文件

2.【cd /etc/mysql 】找到配置文件 my.cnf

3.【vim my.cnf】编辑里面的内容,加上图中的那段代码

4.重启mysql 服务就搞定了

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

相关文章:

  • nginx: [emerg] unknown directive报错误的问题

    前言今天修改nginx中的conf配置文件,由于自己没有备份,导致出问题,解决了两个小时都没有解决掉。不过遇到问题是好事,可以解决,如果有备份遇到问题也许不会一直去解决吧。但是,如…

    2024年09月04日 数据库
  • MySQL Prepared语句的具体使用

    在数据库应用中,很多sql语句都会重复执行很多次,每次执行可能只是where条件中的变量值不同,但mysql依然会解析sql语法并生成执行计划。对于这类情况,可以利用prepare…

    2024年09月04日 数据库
  • MySQL加减间隔时间函数DATE_ADD和DATE_SUB的实现

    MySQL加减间隔时间函数DATE_ADD和DATE_SUB的实现

    前言mysql中内置函数date_add 和 date_sub能对指定的时间进行增加或减少一个指定的时间间隔,返回的是一个日期。语法添加时间间隔date_add... [阅读全文]
  • MySQL虚拟列的具体使用

    MySQL虚拟列的具体使用

    在mysql中,虚拟列(也称为生成列)是一种特殊类型的表列,它不像普通列直接存储数据,而是根据其他列中的数据动态生成。虚拟列可以基于一个或多个其他列的值进行计算... [阅读全文]
  • mysql查询锁表的实现方法

    mysql查询锁表的实现方法

    今天在做数据更新的时候,发现表中数据量不大,但是更新语句执行很久都没成功,经过查询后发现是表锁死导致的,本文记录一下锁表解决步骤:1.查看表是否被锁(1)直接在... [阅读全文]
  • MySQL自连接与子查询方式

    MySQL自连接与子查询方式

    1. 自连接自连接是表自身与自身做笛卡尔积,在sql中进行条件查询,都是指定某一列或多个列之间进行关系运算,无法进行行与行之间的运算,在某些情况下需要对行与行之... [阅读全文]

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com