数据库
首页 > 数据库> > 在MySQL中用于插入的ROW_NUMBER()等价物

在MySQL中用于插入的ROW_NUMBER()等价物

作者:互联网

参见英文答案 > ROW_NUMBER() in MySQL                                    23个
我正在尝试将在Microsoft SQL Server中创建的SQL脚本转换为使用链接服务器运行到可以在SQL过程中使用的脚本,我正在使用的脚本

ROW_NUMBER() OVER(ORDER BY [FIELDS])

创建一个不依赖于自动增量的主键,当我尝试将代码保存为过程时,我得到此错误

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 ‘(ORDER BY [FIELDS])’ at line [LINENO]

显然错误是说ROW_NUMBER OVER不对,因为我删除了OVER位并得到一个错误,说ROW_NUMBER未定义

在我搜索的任何地方我得到的只是人们问SELECT语句的这个问题,而不是INSERT语句和答案大多数时间只是获取行数或插入最后一个id,所以我可以用来创建与ROW_NUMBER()在Microsoft Server中相同的数据

解决方法:

不幸的是,在MySQL中没有ROW_NUMBER()等效,但你仍然可以通过创建一个简单的变量来模拟它,该变量保存一个值,每行增加一个值.

例:

SET @rank=0;
SELECT   @rank := @rank+1 AS rank, fruit, amount
FROM     sales
ORDER BY amount DESC;

> SQLFiddle Demo

标签:row-number,sql,mysql
来源: https://codeday.me/bug/20190926/1819375.html