SQL 错误 [1055] [42000]: Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggreg

2023-05-16

在使用group by时,报错信息如下:
在这里插入图片描述
ERROR 1055 (42000): Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'mome.a.type' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

mysql5.6中默认的sql_mode是宽松模式,即`NO_ENGINE_SUBSTITUTION`,
mysql5.7中默认的sql_mode是严格模式,即`STRICT_TRANS_TABLES`。

这个问题我出现的原因是mysql版本是5.7.x,5.7版本以上是默认开启了 only_full_group_by 严格模式,此模式下group by 只能获取受到其影响的字段信息,无法和其他未受其影响的字段共存。

首先通过SQL查询全局sql_mode模式:

 select @@global.sql_mode;

在这里插入图片描述
发现已开启开启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';

在这里插入图片描述
查询显示修改成功,重新连接,再次使用group by,成功查询。
在这里插入图片描述

方式二:
修改mysql配置文件:
sudo vim /etc/my.cnf
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

重启mysql服务,再次使用,查询成功。
在这里插入图片描述

方式三:
通过ANY_VALUE()函数,非分组字段的出现(和关闭 only_full_group_by 模式有相同效果)

select ANY_VALUE(XXX1),XXX2,COUNT(XXX3) from TABLE  GROUP BY XXX2;

在这里插入图片描述

但是个人认为only_full_group_by 模式开启比较好,因为不开启的话,当不加函数时,group bydistanct一样,是去重查询,不够严谨。

所以个人建议使用方式三去避免这个错误,而不是修改sql_mode模式。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SQL 错误 [1055] [42000]: Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggreg 的相关文章

  • 检查 SELECT 子句中的另一个表中是否存在某个值

    我想查询 table1 中的名称 并查找 table2 中是否存在名称 我有以下查询 但它似乎不起作用 有什么建议我做错了什么吗 select A name CASE WHEN A name in select B name in tabl
  • PHP PDO相关:更新SQL语句未更新数据库内容

    我正在尝试使用准备好的语句来实现更新语句PHP http en wikipedia org wiki PHP脚本 但它似乎没有更新数据库中的记录 我不确定为什么 所以如果您能分享一些见解 我将不胜感激 Code query UPDATE D
  • 如何将 MySQL 数据库更改为 UTC?

    我使用的是 Windows 7 对数据库方面的东西有点陌生 我尝试在 Google 上搜索如何将系统时区更改为 UTC 但文档有些高级 我不太确定如何更改此字段 在 my ini 文件的 mysqld 部分下 添加以下行 default t
  • 将两行中相似的列数据合并到一行中

    我的查询结果具有以下特征 LIDCode Total Domain Region VSE Version AB02 15 GLOBAL CANLA 0 6943 AB02 5925 CENTRE STREET SW 31 GLOBAL CA
  • 创建表作为 select 删除 postgresql 中的非空约束

    在 postgres sql 中 创建表时 select 删除了表上的非空约束 例如 对此没有单一命令的解决方案 要基于现有表 包括所有约束 创建表 请使用 create table B like a including constrain
  • PHP 选择后立即删除

    我有一个 PHP 服务器脚本 它从 MySQL 数据库中选择一些数据 一旦我将 mysql query 和 mysql fetch assoc 的结果存储在我自己的局部变量中 我就想删除我刚刚选择的行 这种方法的问题在于 PHP 似乎对我的
  • 插入多行并返回主键时 Sqlalchemy 的奇怪行为

    插入多行并返回主键时 我注意到一些奇怪的事情 如果我在 isert 查询中添加使用参数值 我会得到预期的行为 但是当将值传递给游标时 不会返回任何内容 这可能是一个错误还是我误解了什么 我的sqlachemy版本是0 9 4 下面如何重现错
  • Oracle 中的 SQL 调优 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 是否有任何文章 链接可以让我找到 SQL 调优 Oracle 的示例 如果能用例子来解释那就太好了 我需
  • 如何有效地从 DB2 表中删除所有行

    我有一个大约有 50 万行的表 我想删除所有行 如果我做简单的delete from tbl 事务日志已满 我不关心这种情况下的事务 无论如何我都不想回滚 我可以删除许多事务中的行 但是有更好的方法吗 如何有效地从 DB2 中的表中删除所有
  • 如何在SSRS中的表上创建热图?

    如何在 SSRS 中创建这样的内容 颜色将根据行中的值 承销商 从红色变为绿色 所有这些都在一个组中 您可以通过右键单击各个单元格并根据表达式设置填充颜色来完成此操作 In the Image below I ve mistakingly
  • 获取家庭成员

    假设以下家庭 其构建架构是 create table PersonConn child int parent int insert into PersonConn values 1 2 insert into PersonConn valu
  • 将 SQL 数据中的一行映射到 Java 对象

    我有一个 Java 类 其实例字段 以及匹配的 setter 方法 与 SQL 数据库表的列名相匹配 我想优雅地从表中获取一行 到 ResultSet 中 并将其映射到此类的实例 例如 我有一个 Student 类 其中包含实例字段 FNA
  • SQLite HAVING 比较错误

    我有一个测试 SQLite 表 用于存储带有值的报告数据 CREATE TABLE IF NOT EXISTS test fact daily revenue date TEXT revenue NUMERIC product TEXT I
  • 将 UUID 存储为 base64 字符串

    我一直在尝试使用 UUID 作为数据库键 我希望占用尽可能少的字节数 同时仍然保持 UUID 表示形式的可读性 我认为我已经使用 base64 将其减少到 22 个字节 并删除了一些尾随的 这些 对于我的目的来说似乎没有必要存储 这种方法有
  • SQL 删除表并重新创建并保留数据

    在我们最初的设计中 我们搞砸了表中的外键约束 现在表已充满数据 我们无法在不删除表中所有记录的情况下更改它 我能想到的唯一解决方案是创建一个备份表并将所有记录放在那里 然后删除所有记录 更改表并开始将它们添加回来 还有其他 更好 的想法吗
  • Mysql 中 UNION 子句的替代方案

    我有两张桌子 表 a 表 b table a ID 1 2 3 4 5 7 table b ID 2 3 4 5 6 我必须得到这样的输出而无需UNION命令 ID 1 2 3 4 5 6 7 注意 我有一个联合解决方案 select fr
  • 了解 SSMS 2008 中关系的更新和删除规则

    当我们定义外键约束时 我对 SQL Server 2008 Management Studio 中的更新和删除规则的含义感到困惑 我也没有找到相关的帮助文档 例如F1帮助 这是屏幕快照 如果有人能描述它们的含义并推荐一些相关文档来阅读 我将
  • Laravel leftJoin 仅右表的最后一条记录

    我是 Laravel 的新手 我有两张桌子 1 产品 2 价格 products id product int p key name varchar prices id price int p key id product int
  • 对多个数据库执行 SQL 查询

    我知道我的帖子与该论坛中的其他帖子的标题非常相似 但我真的找不到我需要的答案 这是我的问题 我的 Windows Server 上运行着 SQL Server 在我的 SQL Server 中 我有大约 30 个数据库 它们都具有相同的表和
  • MySQL 按重复项从上到下排序

    我有一个lammer问题 因为我不是mysql专业人士 我有类似的字段 id color 1 red 2 green 3 yellow 4 green 5 green 6 red 我想按重复项进行分组 最常见的重复项先进行分组 所以应该这样

随机推荐

  • ubuntu磁盘信息查看命令

    1 命令控制行切入U盘目录中 dev 设备驱动文件 media 此目录下放置可插拔设备 xff0c 比如SD卡 xff0c 或者U盘就是挂载到这个目录中 首先要切换到 dev目录中寻media寻用户找到相关U盘 如上便可切入相应U盘 2 根
  • 【SLAM-建图】Ubuntu18.04安装cartographer记录

    1 更新和安装相关工具 sudo apt span class token operator span get update sudo apt span class token operator span get install span
  • jQuery获取标签属性值(一)

    1 box shadow属性可以设置盒子阴影的效果其参数为 xff1a box shadow h shadow v shadow blur spread color inset h shadow必需的 水平阴影的位置 允许负值v shado
  • 尚硅谷react课程-day04

    目录 1 回调形式的ref 2 回调ref中调用次数问题 3 受控组件 4 非受控组件 1 回调形式的ref 1 利用react提供的ref属性名通过回调函数的属性值去调用节点自身 currentnode 61 gt this input1
  • 尚硅谷react课程-day05

    目录 1 高阶函数 2 组件的生命周期 onChange 61 this saveFormData 39 username 39 这个代码的意思是把saveFormData函数调用后的返回值交给onChange回调 xff0c 不是把sav
  • 快捷式~node.js环境搭建

    1 安装包官网下载 xff1a Node js nodejs org 2 安装完成后修改环境变量 在上面已经完成了 node js 的安装 xff0c 即使不进行此步骤的环境变量配置也不影响node js的使用 但是 xff0c 若不进行环
  • 51单片机LCD1602液晶屏显示方法

    以显示hello world 2022 10 17 为例 首先把LCD1602的模块化程序添加到项目目录中 xff0c 模块化方法在51单片机之程序模块化 学习笔记吧的博客 CSDN博客这里可以学习 实验程序 xff1a include l
  • 深度剖析C语言符号篇

    致前行的人 xff1a 人生像攀登一座山 xff0c 而找寻出路 xff0c 却是一种学习的过程 xff0c 我们应当在这过程中 xff0c 学习稳定冷静 xff0c 学习如何从慌乱中找到生机 目录 1 注释符号 xff1a 2 续接符和转
  • HTML5(入门)

    目录 一 HTML5概念和基本的结构 二 基本标签学习 三 图像标签 四 连接标签 五 列表标签 六 表格标签 table 七 媒体标签 八 网页结构 九 内联框架 iframe 十 表单标签 form 十一 初级验证 一 HTML5概念和
  • Arduino驱动oled

    1 模块介绍 I2C显示屏 xff08 驱动为ssd1306 xff0c 分辨率为128 64 xff09 Arduino nano xff08 Atmega168p xff09 2 模块连接 参考开发板管教定义图可知SCL SDA应该连接
  • 4.3.2、分类编址的 IPv4 地址

    分类编址的 IPv4 地址分为 A B C D E 五类 A 类地址的网络号部分占 8 8 8 比特 xff0c 主机号部分占 24 24 24
  • 解决idea2020版本无法使用actiBPM插件问题

    下载 由于在idea自带的插件商店中搜索不到此插件 xff0c 所以我们需要去官网下载 xff1a 地址 xff1a JetBrains Marketplace 点击下载 xff1a 安装 下载完成之后 xff0c 打开idea的设置 xf
  • 【Ubuntu小工具安装】

    span class token number 1 span 安装谷歌中文拼音输入法 span class token number 2 span 双显示器屏幕设置 和独立显卡显示设置 span class token number 3 s
  • 图像的底层特征、高层特征是什么,语义信息是什么意思

    底层特征指的是 xff1a 轮廓 边缘 颜色 纹理和形状特征 颜色特征 是一种全局特征 描述了图像或图像区域所对应的景物的表面性质 纹理特征 也是一种全局特征 它也描述了图像或图像区域所对应景物的表面性质 形状特征 有两类表示方法 一类是轮
  • 配置与管理samba服务器(Linux)

    实验目的 1 了解samba服务器的功能 2 掌握samba服务器的配置管理 3 掌握samba 客户端程序的使用 4 掌握Windows主机和Linux主机共享文件互访的方法 准备工作 1 物理机 xff08 windows客户端 xff
  • IPV4地址详解

    文章目录 IPV4地址分类编址划分子网无分类编制CIDR路由聚合 应用规划 xff08 子网划分的细节 xff09 定长的子网掩码FLSM变长的子网掩码VLSM IPV4地址 IPV4地址就是给因特网 xff08 Internet xff0
  • 字符串拆分函数strtok实现对字符串的拆分

    前言 xff1a 在本章 xff0c 将介绍如何通过strtok函数来分隔字符串 问 xff1a 现有一段字符串 34 chatgpt 64 wenxin baidu 34 如何才能将 64 去掉打印出剩下的部分呢 xff1f 下面将先介绍
  • python语法糖总结

    python语法糖总结 语法糖 是指在编程语言中一些命令的特殊用法 xff0c 以提升编程速度 xff0c 但不一定降低复杂度 xff0c 还可能增加程序的不可读性 xff0c 但在大部分情况下 xff0c 利大于弊 if 语句 span
  • 互联网职场技术分享的必备技能:VNC 远程桌面演示

    VNC 远程桌面控制 职场必备技能点 初衷引子远程桌面软件被需要言归正传VNCVNC服务端SSH 远程访问协议安装图形管理界面继续安装VNC Server VNC 客户端一些小碎语 初衷 不断涌入高科技开发产业圈的新生代 xff0c 助长了
  • SQL 错误 [1055] [42000]: Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggreg

    在使用group by时 xff0c 报错信息如下 xff1a ERROR 1055 42000 Expression 1 of SELECT list is not in GROUP BY clause and contains nona