当前位置: 首页 > 知识库问答 >
问题:

MSSQL到MySQL(5.7)行号

柴文林
2023-03-14

我正在将我的数据库从MSSQL迁移到MySQL。在版本8之前,MySQL不支持row_number。我应该如何为下面的查询进行迁移。

SELECT
  A.Att1,
  B.Att2,
  ...
  SeqNr = ROW_NUMBER() OVER (PARTITION BY A.ID, B.AnotherID ORDER BY C.SomeAttribute DESC),
FROM TableOne A
INNER JOIN TableTwo B
  ON A.ID = B.ID
INNER JOIN TableThree C
  ON B.ID = C.ID

row_number()OVER(partition...order BY)部分应该可以在MySQL8+中开箱即用,但我目前使用的是5.7,最好的替代方案是什么?

多谢了。

共有1个答案

陆城
2023-03-14

使用变量:

SELECT abc.*,
       (@rn := IF(CONCAT_WS(':', A.id, B.AnotherID) = @ii, @rn + 1,
                  IF(@ii := CONCAT_WS(':', A.id, B.AnotherID), 1, 1)
                 )
       ) as seqnum
FROM (SELECT . . .
      FROM TableOne A JOIN
           TableTwo B
           ON A.ID = B.ID JOIN
           TableThree C
           ON B.ID = C.ID
      ORDER BY A.id, B.AnotherID, C.SomeAttribute DESC
     ) abc CROSS JOIN
     (SELECT @ii := '', @rn := 0) params;
 类似资料:
  • 本文向大家介绍mysql 5.7如何安装 mysql 5.7安装配置教程,包括了mysql 5.7如何安装 mysql 5.7安装配置教程的使用技巧和注意事项,需要的朋友参考一下 这篇文章为大家提供了Mysql的安装包,详细的安装步骤,以及安装过程中出现的问题的解决方案,希望对大家有所帮助...... 工具:Mysql 5.7.12.0安装包 下载 方法/步骤: 点击下载下来的安装工具,进入第一步

  • 与MySQL 5.6 相比,MySQL 5.7 具有以下几个方面的新功能。 1) 随机 root 密码 MySQL 5.7 数据库初始化完成后,会自动生成一个 root@localhost 用户,root 用户的密码不为空,而是随机产生一个密码。 2) 自定义 test 数据库 MySQL 5.7 默认安装完成后没有 test 数据库。用户可以自行创建 test 数据库并对其进行权限控制。 3)

  • 本文向大家介绍PHP把MSSQL数据导入到MYSQL的方法,包括了PHP把MSSQL数据导入到MYSQL的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了PHP把MSSQL数据导入到MYSQL的方法。分享给大家供大家参考。具体分析如下: 最近需要把一个以前的asp网站转换成php的,但php是与mysql而我的asp与mssql的,结果就需要把mssql数据导入到mysql数据库了,下

  • 本文向大家介绍Docker 安装 MySQL(8和5.7),包括了Docker 安装 MySQL(8和5.7)的使用技巧和注意事项,需要的朋友参考一下 本篇将介绍如何使用 Docker 部署 MySQL 数据库及远程访问配置 安装 MySQL 拉取镜像 使用下面的命令拉取 MySQL 数据库的镜像: 也可以使用搜索命令,查找其他的 MySQL 相关镜像,其中有标识 Stars 数,即受欢迎程度。

  • 祝你今天愉快,

  • 本文向大家介绍linux下安装升级mysql到新版本(5.1-5.7),包括了linux下安装升级mysql到新版本(5.1-5.7)的使用技巧和注意事项,需要的朋友参考一下 今天需要把linux服务器上的mysql版本从5.1更新到5.7,那么以下内容作为记录,提供以后安装使用手册 第一步:检查linux的操作系统版本 第二步:在mysql官网上下载5.7的版本 http://dev.mysql