`

mysql 报错解决 sql_mode=only_full_group_by

 
阅读更多

ql语句报错问题

#1055 - Expression #3 of SELECT list is not in GROUP BY clause and contains nonaggregated column ‘cash.sdb_login_log.id‘ which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

###

 

官方文档的解决方法

https://dev.mysql.com/doc/refman/5.7/en/sql-mode.html#sql-mode-setting

 

查询mysql服务器版本:
select @@version
显示:
5.7.10
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

#查看sql_mode的语法
select @@GLOBAL.sql_mode;
select @@SESSION.sql_mode;

#修改sql_mode的语法 ,去掉ONLY_FULL_GROUP_BY,重新set model

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‘;
SET SESSION sql_mode = ‘STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION‘;
或者 

 

非全局模式:set @@sql_model=‘’;

全局模式    :set @@GLOBAL.sql_mode=‘’;

分享到:
评论

相关推荐

    MySql版本问题sql_mode=only_full_group_by的完美解决方案

    MySQL版本问题,特别是关于`sql_mode=only_full_group_by`的设置,是一个常见的困扰开发者的问题。在MySQL中,`sql_mode`是一个变量,它定义了服务器执行SQL语句时遵循的规则集。`ONLY_FULL_GROUP_BY`是其中的一种...

    解决MySQL 5.7.9版本sql_mode=only_full_group_by问题

    在MySQL 5.7.9版本中,引入了一个新的默认SQL模式`ONLY_FULL_GROUP_BY`,这个模式旨在增强SQL查询的严谨性,防止在GROUP BY语句中出现未聚合的列,以避免不确定的结果。然而,这也导致了某些在旧版本中能够正常运行...

    mysql只返回时间的时分秒,并且根据小时分组

    这是新建的一个测试表,同一天,同一时刻的有两条数据 ...set sql_mode = (SELECT REPLACE(@@sql_mode, ‘ONLY_FULL_GROUP_BY’, ‘’)); %y:表示显示两位的年份 %m:表示月份 %d:表示天数 这样就可以了。DATE_FORMAT()

    MySQL5.7中的sql_mode默认值带来的坑及解决方法

    案例一:ONLY_FULL_GROUP_BY 问题描述 MySQL版本从5.6升级至5.7之后,部分SQL执行报错,报错信息如下: ERROR 1055 (42000): Expression #3 of XXXXXX list is not in GROUP BY clause and contain

    mysql不支持group by的解决方法小结

    - 配置文件修改:在`my.cnf`或`my.ini`(根据你的操作系统)中,找到`sql_mode`配置项,删除`ONLY_FULL_GROUP_BY`,然后重启MySQL服务。 注意,全局模式的修改会影响所有新创建的数据库,而对已存在的数据库,你...

    Mysql5.7及以上版本 ONLY_FULL_GROUP_BY报错的解决方法

    MySQL 5.7及以上版本引入了一个新的SQL标准模式`ONLY_FULL_GROUP_BY`,该模式旨在增强SQL查询的严格性,确保结果集的合法性。在早期的MySQL版本中,某些GROUP BY查询可以返回不确定的行数据,这在严格模式下是不允许...

    this is incompatible with sql-mode=only-full-group-by

    this is incompatible with sql-mode=only-full-group-by

    MySQL使用中遇到的问题记录

    本文主要关注的是几个常见的问题及其解决方案,包括因`sql_mode=only_full_group_by`导致的GROUP BY查询错误、清空表数据的方法,以及如何处理MySQL占用过多内存的情况。 首先,`sql_mode=only_full_group_by`是...

    关于MySQL的sql_mode合理设置详解

    sql_mode='ONLY_FULL_GROUP_BY,NO_AUTO_VALUE_ON_ZERO,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,PIPES_AS_CONCAT,ANSI_QUOTES' ``` 需要注意的是,MySQL...

    mysql遇到Expression.docx

    2. 更改MySQL的`sql_mode`设置来禁用`ONLY_FULL_GROUP_BY`。你可以通过执行如下SQL语句临时关闭此模式: ```sql SET SESSION sql_mode = 'STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_...

    MySQL关于sql_mode解析与设置讲解

    例如,如果你希望在当前会话中暂时关闭`ONLY_FULL_GROUP_BY`,可以运行`SET SESSION sql_mode = REPLACE(@@sql_mode, 'ONLY_FULL_GROUP_BY', '');`。 总之,理解和灵活运用`sql_mode`是MySQL管理员和开发者的重要...

    MySQL5.7 group by新特性报错1055的解决办法

    MySQL 5.7引入了一项新的SQL模式,即`ONLY_FULL_GROUP_BY`,这导致了在升级后一些之前正常运行的SQL查询开始报错,错误代码1055。这个模式要求在`GROUP BY`子句中出现的所有列要么在`SELECT`列表中通过聚合函数(如`...

    linux MySQL 8.0二进制包安装

    sql-mode = ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION,PIPES_AS_CONCAT slow_query_log = ON slow_query_log_file = /home/mysql/...

    mysql5.7_for_linux源码安装.pdf

    此外,`/etc/***f`配置文件中可以设置`sql_mode`,例如设置`ONLY_FULL_GROUP_BY`可以使得某些查询操作不受到限制。 最后,将MySQL的bin目录添加到系统的PATH环境变量中,确保MySQL命令行工具可以全局访问。 ```...

    MySQL数据表合并去重的简单实现方法

    在MySQL中,如果`sql_mode`包含了`ONLY_FULL_GROUP_BY`,则不允许在`SELECT`列表中出现未聚合的列。为了解决这个问题,我们需要修改`sql_mode`: ```sql SET GLOBAL sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE...

Global site tag (gtag.js) - Google Analytics