ROW_NUMBER()在MySQL中等效于插入

时间:2012-08-15 03:38:57

标签: mysql sql row-number

我正在尝试将在Microsoft SQL Server中创建的SQL脚本转换为使用链接服务器运行到可以在SQL过程中使用的脚本,我正在使用的脚本

ROW_NUMBER() OVER(ORDER BY [FIELDS])

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

  

ERROR 1064(42000):您的SQL语法出错:请查看与您的MySQL服务器版本对应的手册,以便在[LINENO]行<'ORDER BY [FIELDS])附近使用正确的语法< / p>

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

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

1 个答案:

答案 0 :(得分:18)

不幸的是,在MySQL中没有ROW_NUMBER()等价物,但您仍然可以通过创建一个简单的变量来模拟它,该变量将值保持为每行的增量。

示例:

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