mysql用any查询_mysql 5.6有ANY_VALUE功能吗?
目前我在开发中使用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功能吗?相关推荐
- mysql 内嵌查询_mysql嵌套查询_MySQL
mysql嵌套查询_MySQL 一:创建ecs_goods表插入以下数据: +----------+------------------------------+--------+---------- ...
- mysql树形结构查询_MySQL递归查询所有子节点,树形结构查询
--表结构 CREATE TABLE `address` ( `id` int(11) NOT NULL AUTO_INCREMENT, `code_value` varchar(32) DEFAUL ...
- mysql优化模糊查询_MySQL的LIKE模糊查询优化
%xxx%这种方式对于数据量少的时候,我们倒可以随意用,但是数据量大的时候,我们就体验到了查询性能的问题,像老化的车子艰难趴着坡一样,并且这种方式并未使用到索引,而是全表扫描 mysql 高效模糊查询 ...
- mysql left join 查询_MySQL联表查询基本操作之left-join常见的坑
概述 对于中小体量的项目而言,联表查询是再常见不过的操作了,尤其是在做报表的时候.然而校对数据的时候,您发现坑了吗?本篇文章就 mysql 常用联表查询复现常见的坑. 基础环境 建表语句 DROP T ...
- mysql 非最佳查询_Mysql 查询优化
image.png 如果查询缓存有命中的查询结果,查询语句就可以直接去查询缓存中取数据. 缓存在第一次查询后,MySQL便将查询语句以及查询结果进行hash处理并保留在缓存中,SQL查询到达之后,对其 ...
- mysql exists依赖查询_MySQL EXISTS 和 NOT EXISTS 子查询
MySQL EXISTS 和 NOT EXISTS 子查询语法如下: 1 SELECT ... FROM table WHERE EXISTS (subquery) 该语法可以理解为:将主查询的数据, ...
- mysql打开慢查询_MySQL 开启慢查询日志的方法
1.1 简介 开启慢查询日志,可以让MySQL记录下查询超过指定时间的语句,通过定位分析性能的瓶颈,才能更好的优化数据库系统的性能. 1.2 登录数据库查看 [root@localhost lib]# ...
- mysql联合union查询_Mysql联合查询UNION和UNION ALL的使用介绍
数据库 Mysql联合查询UNION和UNION ALL的使用介绍 字号+ 作者:小虾米 2016-12-05 12:47 Mysql的联合查询命令UNION和UNION ALL,总结了使用语法和注意 ...
- mysql如何链表查询_mysql怎样两表查询?
mysql两表查询的方法:1.使用"select 字段列表 from 表1,表2 [where 条件]"进行查询:2.使用"SELECT 字段列表 FROM 表1 关键字 ...
最新文章
- 在Java连接hbase时出现的问题
- 使用zerotier让异地设备组局域网
- 基于OHCI的USB主机 —— UFI数据结构1
- 团队-团队编程项目作业名称-需求分析
- php用mssql还是用pdo,php使用pdo连接mssql server数据库实例
- Android开发p图软件,媲美大神P图效果 Android软件抠图神手
- php 扒取网页数据
- bbb 烧写脚本分析
- bind-html自动换行,如何实现textarea placeholder自动换行?
- 【李宏毅2020 ML/DL】P51 Network Compression - Knowledge Distillation | 知识蒸馏两大流派
- js距离米转换为千米_泰禾中央广场+恒大未来城双盘大兴,8.4米层高“空中别墅”来袭...
- SkinSharp破解版与模版皮肤下载与使用
- 图解十大机器学习算法
- CSS3 特殊字体@font-face
- unixbench性能测试跑分工具
- 【信号处理】CFO估计技术(Matlab代码实现)
- 【注意力机制集锦】Channel Attention通道注意力网络结构、源码解读系列一
- 怎么在自己电脑上搭建一个服务器,以便于外网访问呢?
- 15条搜狗快速排名策略,让您站在搜索引擎的前列!
- IBM Storwize V3500存储配置