专栏首页MySQL捉虫MySQL 8.0不支持GROUP BY ASC DESC
原创

MySQL 8.0不支持GROUP BY ASC DESC

https://dev.mysql.com/worklog/task/?id=8693

根据WL#8693,MySQL 8.0后续版本将不再支持GROUP BY ASC DESC语法.

测试表和数据

create table t (id int primary key,name varchar(20));
insert into t values(1,'test'),(2,'test2');

MySQL 5.7.30

mysql> select id,count(*) from t group by id desc;
+----+----------+
| id | count(*) |
+----+----------+
| 2 | 1 |
| 1 | 1 |
+----+----------+
mysql> show warnings;
+---------+------+----------------------------------------------------------------------+
| Level  | Code | Message  |
+---------+------+----------------------------------------------------------------------+
| Warning | 1287 | 'GROUP BY with ASC/DESC' is deprecated and will be removed in a 
future release. Please use GROUP BY ... ORDER BY ... ASC/DESC instead |
+---------+------+----------------------------------------------------------------------+
1 row in set (0.00 sec)

MySQL 8.0.22

mysql> select id,count(*) from t group by id desc;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that 
corresponds to your MySQL 
server version for the right syntax to use near 'desc' at line 1

该WL还会影响升级操作

在MySQL 5.7创建测试表和存储过程

create database test;
use test;
create table t (id int primary key,name varchar(20));
insert into t values(1,'test'),(2,'test2');
delimiter $
create procedure test_group()
begin
 select id,count(*) from t group by id desc;
end $
delimiter ;

关闭实例后,使用MySQL 8.0.22程序进行升级

/data/mysql8_debug/bin/mysqld_safe --defaults-file=./my.cnf --upgrade=FORCE &

升级失败

[ERROR] [MY-013235] [Server] Error in parsing Routine 'test'.'test_group' 
during upgrade. You have an error in your SQL syntax; check the manual that 
corresponds to your MySQL 
server version for the right syntax to use near 'desc; end' at line 3
[ERROR] [MY-010022] [Server] Failed to Populate DD tables.
[ERROR] [MY-010119] [Server] Aborting
[System] [MY-010910] [Server] /data/mysql8_debug/bin/mysqld: 
Shutdown complete (mysqld 8.0.22-debug) Source distribution.

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • MySQL 8.0新特性:降序索引

    上两篇文章分别介绍了MySQL8.0的相关的新特性《MySQL 8.0新特性:隐藏索引》和《MySQL 8.0新特性:隐藏字段》,本文继续介绍MySQL8.0的...

    SEian.G
  • 新来的领导下令升级 MySQL 8.0,完美掉坑…

    那既然隐式排序为什么还要保留Order by?隐式排序的目的又是什么呢?让我们一起来看看。

    Java技术栈
  • MySQL8.0之降序索引(descending index)

    MySQL8.0引入了降序索引(descending index),今天我们来说说这个特性。

    AsiaYe
  • 两千字揭密 MySQL 8.0.19 三大索引新功能:隐藏索引,降序索引,函数索引

    导读:本文详细介绍 MySQL 8.0.19 三大索引新功能,隐藏索引,降序索引,函数索引,结合其他同仁的技术应用案例,进一步进行验证改编,最后总结心得,希望对...

    数据和云
  • MySQL 8.0发布了,来看看针对SQL有哪些新功能?

    据官方称,此次发布意味着MySQL从此兼顾NoSQL和SQL于一身。NoSQL+SQL=MySQL。

    ImportSource
  • MySQL 8.0与MariaDB 10.4,谁更易于填坑补锅?

    贺春旸,凡普金科DBA团队负责人,《MySQL管理之道:性能调优、高可用与监控》第一、二版作者,曾任职于中国移动飞信、安卓机锋网。致力于MariaDB、Mong...

    jeanron100
  • MySQL8.0新特性集锦

    在8.0版本之前,默认字符集为latin1,utf8指向的是utf8mb3,8.0版本默认字符集为utf8mb4,utf8默认指向的也是utf8mb4。

    MySQL技术
  • 你知道MySQL 8.0中的索引有哪些新特性吗?看这一篇就够了!!!

    在之前MySQL的版本中,只能通过显式的方式删除索引,如果删除后发现索引删错了,又只能通过创建索引的方式将删除的索引添加回来,如果数据库中的数据量非常大,或者表...

    冰河
  • Mysql order by 优化

    本节描述MySQL何时可以使用索引来满足ORDER BY子句,当不能使用索引时使用filesort,以及优化器中有关ORDER BY的执行计划信息。

    XING辋
  • SQL干货 | 窗口函数的使用

    Mysql从8.0版本开始,也和Sql Server、Oracle一样支持在查询中使用窗口函数,本文将根据官方文档,通过实例介绍窗口函数并举例分组排序函数的使用...

    Python数据科学
  • select 进阶查询

     ① 分组查询中,select 后面只能出现,在 group by 后出现过的列或者聚合函数。  ② where 是在分组前对记录进行筛选,而 having ...

    Demo_Null
  • 数据库MySQL-查询语句

    dual表是一个伪表。在有些特定情况下,没有具体的表的参与,但是为了保证select语句的完整又必须要一个表名,这时候就使用伪表。

    cwl_java
  • MySQL 8.0.12 有什么新内容?

    今年4月份,MySQL突然直接从8.0.5跳过多个版本号到8.0.11,直接宣布8.0.11 GA,告诉大家说,这个版本已经可以到线上用了。

    数据和云
  • MySQL 8.0.12 有什么新特性?

    原文链接:http://enmotech.com/web/detail/1/577/1.html

    数据和云01
  • MYSQL操作数据表中的记录

    36:操作数据表中的记录 插入记录   INSERT INTO 表名  VALUES();   或者INSERT 表名  VALUES(); ? ? ? ? ...

    别先生
  • MySQL 学习经验、学习资源的分享

    本来村民也是打算写一写基础教程的,但是 B 站 UP 主高新强的系列视频 —— MySQL8零基础入门视频教程 十分照顾初学者,正适合新手村。村民看下来之后觉得...

    syy
  • 新特性解读 | MySQL 8.0 窗口函数框架用法

    资深数据库专家,专研 MySQL 十余年。擅长 MySQL、PostgreSQL、MongoDB 等开源数据库相关的备份恢复、SQL 调优、监控运维、高可用架构...

    爱可生开源社区
  • MySQL分组需求探秘

    前两天同事有个MySQL数据分组的需求,如下测试数据,需要找出每个name分组中create_date最近的记录,

    bisal
  • 嗦一嗦 MySQL 8.0的新特性(一)

    导读 MySQL8.0 GA版本发布了,展现了众多新特性,本系列译文将整理为3篇,为大家介绍升级的部分新特性。 本文为第1篇,重点为大家介绍SQL、JSON上...

    wubx

扫码关注云+社区

领取腾讯云代金券