目前我在开发中使用mysql 5.7,在生产中使用5.6.每次我在开发中使用group运行查询时都会出现一些错误,如“错误代码:1055. SELECT列表的表达式#1不在GROUP BY中”

这是查询.

SELECT c.id, c.name, i.*

FROM countries c, images i

WHERE i.country_id = c.id

GROUP BY c.id; Fixed for 5.7;

SELECT c.id, c.name,

ANY_VALUE(i.url) url,

ANY_VALUE(i.lat) lat,

ANY_VALUE(i.lng) lng

FROM countries c, images i

WHERE i.country_id = c.id

GROUP BY c.id;

为了解决这个问题,我使用5.7 ANY_VALUE中的mysql函数,但主要问题是它在mysql 5.6中不可用

因此,如果我修复sql语句进行开发,我将在生产中出错.

你知道mysql 5.6中ANY_VALUE函数的任何解决方案或polifill吗?

解决方法:

您滥用notorious nonstandard MySQL extension to GROUP BY.标准SQL将始终拒绝您的查询,因为您提到的不是聚合的列,并且在GROUP BY中未提及.在您的开发系统中,您正尝试使用ANY_VALUE()来解决这个问题.

SET @mode := @@SESSION.sql_mode;

SET SESSION sql_mode = '';

/* your query here */

SET SESSION sql_mode = @mode;

这将允许MySQL接受您的查询.

但是看,你的查询不是很正确.当你可以说服它运行时,它会从images表中返回一个随机选择的行.这种不确定性常常会给用户和您的技术支持人员带来困惑.

为什么不使查询更好,所以它选择一个特定的图像.如果您的图像表具有自动增量ID列,则可以执行此操作以选择“第一个”图像.

SELECT c.id, c.name, i.*

FROM countries c

LEFT JOIN (

SELECT MIN(id) id, country_id

FROM images

GROUP BY country_id

) first ON c.id = first.country_id

LEFT JOIN images i ON first.id = i.id

每个国家/地区将返回一行,并显示可预测的图像.

标签:mysql,group-by,aggregate-functions,mysql-error-1055

来源: https://codeday.me/bug/20190916/1807840.html

mysql用any查询_mysql 5.6有ANY_VALUE功能吗?相关推荐

  1. mysql 内嵌查询_mysql嵌套查询_MySQL

    mysql嵌套查询_MySQL 一:创建ecs_goods表插入以下数据: +----------+------------------------------+--------+---------- ...

  2. mysql树形结构查询_MySQL递归查询所有子节点,树形结构查询

    --表结构 CREATE TABLE `address` ( `id` int(11) NOT NULL AUTO_INCREMENT, `code_value` varchar(32) DEFAUL ...

  3. mysql优化模糊查询_MySQL的LIKE模糊查询优化

    %xxx%这种方式对于数据量少的时候,我们倒可以随意用,但是数据量大的时候,我们就体验到了查询性能的问题,像老化的车子艰难趴着坡一样,并且这种方式并未使用到索引,而是全表扫描 mysql 高效模糊查询 ...

  4. mysql left join 查询_MySQL联表查询基本操作之left-join常见的坑

    概述 对于中小体量的项目而言,联表查询是再常见不过的操作了,尤其是在做报表的时候.然而校对数据的时候,您发现坑了吗?本篇文章就 mysql 常用联表查询复现常见的坑. 基础环境 建表语句 DROP T ...

  5. mysql 非最佳查询_Mysql 查询优化

    image.png 如果查询缓存有命中的查询结果,查询语句就可以直接去查询缓存中取数据. 缓存在第一次查询后,MySQL便将查询语句以及查询结果进行hash处理并保留在缓存中,SQL查询到达之后,对其 ...

  6. mysql exists依赖查询_MySQL EXISTS 和 NOT EXISTS 子查询

    MySQL EXISTS 和 NOT EXISTS 子查询语法如下: 1 SELECT ... FROM table WHERE EXISTS (subquery) 该语法可以理解为:将主查询的数据, ...

  7. mysql打开慢查询_MySQL 开启慢查询日志的方法

    1.1 简介 开启慢查询日志,可以让MySQL记录下查询超过指定时间的语句,通过定位分析性能的瓶颈,才能更好的优化数据库系统的性能. 1.2 登录数据库查看 [root@localhost lib]# ...

  8. mysql联合union查询_Mysql联合查询UNION和UNION ALL的使用介绍

    数据库 Mysql联合查询UNION和UNION ALL的使用介绍 字号+ 作者:小虾米 2016-12-05 12:47 Mysql的联合查询命令UNION和UNION ALL,总结了使用语法和注意 ...

  9. mysql如何链表查询_mysql怎样两表查询?

    mysql两表查询的方法:1.使用"select 字段列表 from 表1,表2 [where 条件]"进行查询:2.使用"SELECT 字段列表 FROM 表1 关键字 ...

最新文章

  1. 在Java连接hbase时出现的问题
  2. 使用zerotier让异地设备组局域网
  3. 基于OHCI的USB主机 —— UFI数据结构1
  4. 团队-团队编程项目作业名称-需求分析
  5. php用mssql还是用pdo,php使用pdo连接mssql server数据库实例
  6. Android开发p图软件,媲美大神P图效果 Android软件抠图神手
  7. php 扒取网页数据
  8. bbb 烧写脚本分析
  9. bind-html自动换行,如何实现textarea placeholder自动换行?
  10. 【李宏毅2020 ML/DL】P51 Network Compression - Knowledge Distillation | 知识蒸馏两大流派
  11. js距离米转换为千米_泰禾中央广场+恒大未来城双盘大兴,8.4米层高“空中别墅”来袭...
  12. SkinSharp破解版与模版皮肤下载与使用
  13. 图解十大机器学习算法
  14. CSS3 特殊字体@font-face
  15. unixbench性能测试跑分工具
  16. 【信号处理】CFO估计技术(Matlab代码实现)
  17. 【注意力机制集锦】Channel Attention通道注意力网络结构、源码解读系列一
  18. 怎么在自己电脑上搭建一个服务器,以便于外网访问呢?
  19. 15条搜狗快速排名策略,让您站在搜索引擎的前列!
  20. IBM Storwize V3500存储配置

热门文章

  1. linux mailbox模型
  2. [Android]BaseExpandableListAdapter实现可折叠列表
  3. FIREDAC连接SQLITE乱码的解决
  4. python-re模块
  5. 网上常用免费WebServices集合
  6. Flutter RichText 使用案例解析 Flutter WidgetSpan 设置图片显示
  7. vue中v-model指令的使用之Vue知识点归纳(九)
  8. 安卓开发——锁定软件——输入密码后重复弹出输入密码窗口的解决方法
  9. Javascript设计模式(四)-- 建造者模式
  10. Open cup #2