Mysql解决of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column问题

2023-11-07

一、查询语句:

//查询语句一
select   count(u.id)
from  user   u
LEFT JOIN dept  d on u.dept_id=d.id
LEFT JOIN  user_role ur on u.account=ur.account
LEFT JOIN role r on ur.role_id= r.id
where
u.has_del=0
GROUP BY  u.account
order by  u.create_time desc

//查询语句二
select  u.id, u.account,u.username,u.mobile,u.idcard,u.user_status,u.org_id,u.dept_id,u.create_time,ur.role_id,r.role_name,d.dept_name
from  user   u
LEFT JOIN dept  d on u.dept_id=d.id
LEFT JOIN  user_role ur on u.account=ur.account
LEFT JOIN role r on ur.role_id= r.id
where
u.has_del=0
GROUP BY  u.account
order by  u.create_time desc
limit 0,10

二、完整报错信息:

1055 - Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column 'identity-qrcode-yqfk.u.create_time' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

三、原因:

从提示信息 this is incompatible with sql_mode=only_full_group_by 可以看出来是编写的查询语法与 sql_mode 的配置不兼容。

sql_mode 是mysql 的一个配置项,根据配置的值不同可提供不同的功能,这是一个功能配置项,不是性能配置项。

四、解决办法:

1:去掉此配置

先查询一下当前的配置:

select version(), @@sql_mode;

返回结果:


8.0.27    ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION

修改方法就是去掉配置项中的 ONLY_FULL_GROUP_BY ,其他该有的配置不动它。

修改位置:linux系统/etc/my.cnf文件,windows 系统 my.ini

2:使用 any_value 函数

将没有 group by 的字段使用 any_value 函数包裹起来:

//查询语句一
select count(u.id)
from user u
LEFT JOIN dept d on u.dept_id=d.id
LEFT JOIN user_role ur on u.account=ur.account
LEFT JOIN role r on ur.role_id= r.id
where
u.has_del=0
and u.org_id=‘ivapqNzOLQSmNOZEFTBhZCYoC’
GROUP BY u.account
order by any_value( u.create_time )desc

//查询语句二
select any_value(u.id), u.account,any_value(u.username),any_value(u.mobile),any_value(u.idcard),any_value(u.user_status),any_value(u.org_id),any_value(u.dept_id),any_value(u.create_time),any_value(ur.role_id),any_value(r.role_name),any_value(d.dept_name )
from user u
LEFT JOIN dept d on u.dept_id=d.id
LEFT JOIN user_role ur on u.account=ur.account
LEFT JOIN role r on ur.role_id= r.id
where
u.has_del=0
GROUP BY u.account
order by any_value(u.create_time )desc
limit 0,10

五、sql_mode可选值

ONLY_FULL_GROUP_BY:

对于GROUP BY聚合操作,如果在SELECT中的列,没有在GROUP BY中出现,那么这个SQL是不合法的,因为列不在GROUP BY从句中

NO_AUTO_VALUE_ON_ZERO:

该值影响自增长列的插入。默认设置下,插入0或NULL代表生成下一个自增长值。如果用户 希望插入的值为0,而该列又是自增长的,那么这个选项就有用了。

STRICT_TRANS_TABLES:

在该模式下,如果一个值不能插入到一个事务表中,则中断当前的操作,对非事务表不做限制

NO_ZERO_IN_DATE:

在严格模式下,不允许日期和月份为零

NO_ZERO_DATE:

设置该值,mysql数据库不允许插入零日期,插入零日期会抛出错误而不是警告。

ERROR_FOR_DIVISION_BY_ZERO:

在INSERT或UPDATE过程中,如果数据被零除,则产生错误而非警告。如 果未给出该模式,那么数据被零除时MySQL返回NULL

NO_AUTO_CREATE_USER:

禁止GRANT创建密码为空的用户

NO_ENGINE_SUBSTITUTION:

如果需要的存储引擎被禁用或未编译,那么抛出错误。不设置此值时,用默认的存储引擎替代,并抛出一个异常

PIPES_AS_CONCAT:

将”||”视为字符串的连接操作符而非或运算符,这和Oracle数据库是一样的,也和字符串的拼接函数Concat相类似

ANSI_QUOTES:

启用ANSI_QUOTES后,不能用双引号来引用字符串,因为它被解释为识别符

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

Mysql解决of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column问题 的相关文章

  • 使用唯一索引删除重复项

    我在两个表字段 A B C D 之间插入 相信我已经在 A B C D 上创建了唯一索引以防止重复 然而我以某种方式简单地对这些做了一个正常的索引 因此插入了重复项 这是2000万条记录的表 如果我将现有索引从普通索引更改为唯一索引 或者只
  • 在docker中使用MySQL数据库设置aspnetcore

    我正在尝试设置一个 docker compose 文件 其中包含 asp net core mysql 数据库和 phpmyadmin 的容器 设置我的 mysql 服务器没有问题 我可以使用 phpmyadmin 访问它 我的 asp n
  • 将 UPDATE 转换为 INSERT INTO ON DUPLICATE KEY UPDATE 语句

    我有这个 UPDATE MySQL 语句 效果很好 UPDATE table1 Inner Join table2 ON table2 id table1 gw id SET table1 field1 1 table1 field2 2
  • MySQL 服务器未启动

    当我做 mysql u root p并输入my password这就是我得到的 错误 2002 HY000 无法通过套接字 var run mysqld mysqld sock 连接到本地 MySQL 服务器 2 所以我输入 systemc
  • mySQL MATCH 跨多个表

    我有一组 4 个表 我想对其进行搜索 每个都有全文索引 查询可以使用每个索引吗 CREATE TABLE categories id int 5 unsigned NOT NULL auto increment display order
  • 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
  • 查询中列的顺序重要吗?

    当从 MySQL 表中选择列时 与表中的顺序相比 选择列的顺序是否会影响性能 不考虑可能覆盖列的索引 例如 您有一个包含行 uid name bday 的表 并且有以下查询 SELECT uid name bday FROM table M
  • mysql-如何向列申请补助?

    用户名 撤销对数据库的选择 Person I set GRANT SELECT id ON database Person TO username localhost 不是工作 gt SELECT secret FROM Person Go
  • PHP 绑定“bigint”数据类型(MySQLi 准备好的语句)

    studentId 57004542323382 companyOfferId 7 sql INSERT INTO studentPlacement companyOfferId studentId VALUES if stmt db gt
  • 截断 Mysql 表 Cron 作业?

    我在如何使用 cron 作业截断 Mysql 表时遇到了一些麻烦 无论我尝试什么 我似乎都无法让数据库清除表格 感谢您的帮助 mysql uderp example pexample hlocalhost Dexample e TRUNCA
  • MySQL 使用 ALTER IGNORE TABLE 出现重复错误

    我的 MySQL 中有一个有重复项的表 我尝试删除重复项并保留一项 我没有主键 我可以通过以下方式找到重复项 select user id server id count as NumDuplicates from user server
  • MYSQL 区分大小写的 utf8 搜索(使用 hibernate)

    我的登录表具有 utf8 字符集和 utf8 排序规则 当我想要检查用户名并检索该特定用户名的其他信息时 hql 查询会为我提供小写和大写相同的结果 我应该如何处理适用于案例的 HQL 查询 我使用 Mysql 5 和 java hiber
  • InnoDB 因读未提交而死锁! - Java - Glassfish - EJB3(JPA/Hibernate)

    几天来 我在使用 Glassfish EJB3 和 Mysql InnoDB 的 Java 应用程序上遇到了死锁问题 配置 Mysql InnoDB Ver 14 12 Distrib 5 0 51a 适用于 debian linux gn
  • 如何正确转义mysql?

    我刚刚发现如果我写 select from tbl where name like foo 然后添加 foo 作为参数及其值 a 用户数据 它不会正确转义 我勒个去 它想要 a 即使我使用参数 我还是忍不住觉得我对 sql 注入持开放态度
  • 在 MySQL 中使用 COUNT 时如何返回 0 而不是 null

    我使用此查询返回存储在 sTable 中的歌曲列表以及存储在 sTable2 中的总项目数 SQL queries Get data to display sQuery SELECT SQL CALC FOUND ROWS str repl
  • MySQL连接字符集问题

    我在 Mac 上使用带有 MySQL 的 velosurf 没有任何编码问题 但是当我切换到 Linux 计算机时 从 velosurf 获得的值未正确编码 我发现这可能是默认连接字符集的问题 在 Mac 上我得到 mysql gt sho
  • 如何将ElasticSearch与MySQL集成?

    在我的一个项目中 我计划将 ElasticSearch 与 MySQL 结合使用 我已经成功安装ElasticSearch 我可以单独管理ES中的索引 但我不知道如何用 MySQL 实现同样的功能 我读过一些文件 但我有点困惑 没有明确的想
  • 映射 mysql 中同一个表的多个值

    您好 我必须使用另一个表中的值 id 获取文本值 表 1 包含值 ID 表 2 包含名称和值 ID 表 1 SEVERITY OCCURENCE DETECTABILITY 2 3 4 表 2 id name value 1 Very Hi
  • SQL不允许表中有重复记录

    如何使其不添加重复项 我想让它通过 ID 之外的所有其他列进行检查 我希望这个无效 ID col1 col2 col3 1 first middle last ID col1 col2 col3 2 first middle last 我希

随机推荐

  • hive -e 和hive -f 的注意点 (//和////)

    原谅我张嘴可能就想骂人 当然跟别人无关 想骂的是自己太年轻 也顺便记录下这个注意点 菜鸟一只 多多见谅 大家都知道 hive f 后面指定的是一个文件 然后文件里面直接写sql 就可以运行hive的sql hive e 后面是直接用双引号拼
  • 如何运用MATLAB实现K-MEANS聚类分析

    由于自己最近在学习聚类分析 也算是一个入门 相当于将自己这段时间的学习成果进行一个总结 分享给更多打算学习聚类分析或者需要用到聚类分析的同学们 在了解K MEANS聚类分析之前 我们首先明确聚类的含义 聚类是将数据分类到不同的类或者簇这样的
  • Springboot 后端配置流程

    概述 分三步 一 从github克隆项目master分支来 git操作步骤 目录 1 配置用户名和邮箱 2 初始化 3 设置仓库地址 4 拉取代码 5 设置保存账号密码时间 6 查看状态 sudo git config global use
  • python中find函数的使用方法_Python re 模块findall() 函数返回值展现方式解析

    findall 函数 在字符串中找到正则表达式所匹配的所有子串 并返回一个列表 如果没有找到匹配的 则返回空列表 注意 match 和 search 是匹配一次 findall 匹配所有 match 和 search 的区别也很大 可以自行
  • 自媒体必备的4个文案网站,每一个都很实用,赶紧收藏

    1 文案狗 在这里 谐音梗 不用担心扣钱 很多广告词 slogan都离不开它 如果实在想不到合适的词 可以在这里搜索 有了这么多的词汇灵感 再也不担心写不出吸睛的广告文案了 是广告人非常喜欢的文案网站 只要输入关键字或者词语 就能生成各种谐
  • 职责链模式

    职责链模式 职责链模式概述 职责链模式解决的问题 角色分析 职责链模式优点 代码示例 源码中的职责链模式使用案例 业务与设计模式落地案例 职责链模式概述 职责链模式解决的问题 案例 一个贷款审批案例 假设贷款额度小于5万时由客户负责人审核放
  • 用python做DEVS离散事件建模与仿真

    1 DEVS 离散事件运行规范 离散事件系统规范 DEVS discrete event system specification 是由美国学者 B P Zeigler等提出的一种模块化建模方法 它将描述对象中的每个子系统看作一个具有内部独
  • 利用Blob下载文件

    前端涉及到导出文件时可以使用Blob进行下载 这里是用的vue this store dispatch exportList then response gt var blob new Blob response type applicat
  • LIO-SAM:在高斯牛顿法求解过程中用SO3代替欧拉角

    LIO SAM发表于IROS2020 是一个效果非常好的惯性 激光紧耦合里程计 我打算给我们的机器人搞一个激光里程计 于是打算把LIO SAM改一改搞过来 修改过程中发现一个问题 在里程计求解 mapOptimization的LMOptim
  • 多线程面试60问

    1 多线程有什么用 1 发挥多核CPU 的优势 随着工业的进步 现在的笔记本 台式机乃至商用的应用服务器至少也都是双核的 4 核 8 核甚至 16 核的也都不少见 如果是单线程的程序 那么在双核 CPU 上就浪费了 50 在 4 核 CPU
  • python练习作业

    1 设计一个程序 完成 英雄 商品的购买 展示商品信息 折扣 gt 输入商品价格 gt 输入购买数量 gt 提示付款 输入付款金额 gt 打印购买小票 扩展 print n t t英雄商城购买英雄 print 英雄信息 print 14 p
  • vue3 打包上线配置

    1 项目根目录下 src同目录 新建vue config js文件 2 输入配置参数 const path require path module exports 基本路径 整个文件夹在哪 publicPath 输出文件目录 文件夹名 ou
  • Qt如何调用建立好的ui界面

    在我们刚才学习qt的时候 很多的时候 按照新建立的工程文件 出现一个困扰 就是如何调用额外建立的UI界面 在这里主要是说明这里的面的关键因素 其实学习qt 如果之前有过学过C 的同事 那么就学习qt就会很容易上手 因为qt主要的核心就是以c
  • 1.2.Perl环境安装-Windows下模拟linux命令行(不安装linux虚拟机)

    Perl环境安装 Windows下模拟linux命令行 不安装linux虚拟机 B站视频教程 菜鸟学生信 教学环境说明 为了降低大家的学习门槛 前期教学使用windows环境 在大家熟悉Perl的基本语法后我们再过度到Linux环境 一 使
  • 【调试经验】双系统重装Ubuntu LTS 22.04

    机器 机械革命 系统 Win11 Ubuntu 22 04 工具 U盘 Rufus 镜像 Ubuntu 镜像文件 目录 前期准备阶段 关键阶段 大功告成 前期准备阶段 也不知道怎么回事 昨天在更新软件后只能进tty终端而进不了 GUI 界面
  • 肖涵博士和全球专家于 CVPR2023 温哥华会议 线上分享神经搜索的实践应用

    神经搜索 也就是在深度嵌入空间中高效搜索相似项的技术 它是处理大型多模态集合的基石 随着像基础模型和提示词工程这样的强大技术的出现 高效神经搜索变得越来越重要 明早六点 在 CVPR2023 温哥华的神经搜索实践应用专题讲座 里 Jina
  • 如何提升周末的体验感?

    以下是一些可以提升周末体验感的好方法 1 尝试新的活动 尝试一些之前从未尝试过的活动 比如户外运动 艺术课程 烹饪课程或者参加社区活动等 这样可以为周末增添新鲜感和乐趣 2 放松身心 给自己一些时间放松身心 可以进行冥想 瑜伽或者阅读等能够
  • 【Transformers】第 2 章:主题的实践介绍

    大家好 我是Sonhhxg 柒 希望你看完之后 能对你有所帮助 不足请指正 共同学习交流 个人主页 Sonhhxg 柒的博客 CSDN博客 欢迎各位 点赞 收藏 留言 系列专栏 机器学习 ML 自然语言处理 NLP 深度学习 DL fore
  • 机器学习之【最大熵模型】

    机器学习之 最大熵模型 一 最大熵模型 1 最大熵原理 2 示例 3 定义 二 最大熵模型的学习 1 原例子的最大熵模型 三 模型学习的最优化算法 四 最后示例 一 最大熵模型 1 最大熵模型 Maximum Entropy Model 由
  • Mysql解决of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column问题

    一 查询语句 查询语句一 select count u id from user u LEFT JOIN dept d on u dept id d id LEFT JOIN user role ur on u account ur acc