这个问题已经在这里有了答案 :
MySQL中的ROW_NUMBER()
(24个答案)
7年前关闭。
我正在尝试将在Microsoft SQL Server中创建的SQL脚本转换为可以通过链接服务器运行的SQL脚本,该脚本可以在SQL
Procedures(我正在使用的脚本)中使用
ROW_NUMBER() OVER(ORDER BY [FIELDS])
创建一个不依赖于自动增量的主键,当我尝试将代码保存为过程时,出现此错误
错误1064(42000):您的SQL语法有错误:请查看与您的MySQL服务器版本相对应的手册,以在[[LINENO]]行的’(ORDER BY
[FIELDS])’附近使用正确的语法
显然,该错误表明ROW_NUMBER OVER不正确,原因是我删除了OVER位并收到一条错误消息,指出ROW_NUMBER未定义
在我搜索的所有地方,我什么都没得到,但人们只问这个问题的SELECT语句,而不是INSERT语句,大多数情况下,答案只是关于获取行数或获取插入的最后一个ID,所以我可以用它来创建与ROW_NUMBER()在Microsoft
Server中相同的数据
不幸的是,ROW_NUMBER()
MySQL中没有等效项,但是您仍然可以通过创建一个简单的变量来模拟它,该变量包含一个值,该值每行递增一次。
例:
SET @rank=0;
SELECT @rank := @rank+1 AS rank, fruit, amount
FROM sales
ORDER BY amount DESC;
问题内容: MySQL中有没有复制SQL Server函数的好方法? 例如: 然后,例如,我可以添加一个条件以将限制限制为1,以获得每对最高的一行。 问题答案: 我想要每对(col1,col2)对具有最高col3的行。 这是一个按组的最大值,是最常提出的SQL问题之一(因为它看起来应该很容易,但实际上并非如此)。 我经常为null-self-join充实: “获取表中没有匹配col1,col2的其
问题内容: 我需要进行查询并与一年中的所有日子一起加入,但是在我的数据库中没有日历表。 谷歌搜索后,我在PostgreSQL中找到了。MySQL有类似的东西吗? 我的实际表有这样的东西: 但是我的查询必须返回: 问题答案: 这就是我的方法。它创建了从 2011-01-01 到 2011-12-31 的日期范围: 唯一的要求是 any_table中 的行 数 应大于或等于所需范围的大小(在此示例中,
问题内容: 我需要使用以下查询创建group by子句: 但我想在左边的一栏返回我:1、2、3、4、5等。在MSSql中我会做 这可能吗? 问题答案:
问题内容: 在MySQL中,当另一个值=时,我希望能够进行搜索。在MySQL中用于拆分字符串的语法是什么?在PHP中,我可能会使用并将它们放在一起。有没有办法在MySQL中做到这一点? 背景:我正在研究体育比分,并且想尝试分数相同(并且在同一日期)的比赛-每个球队列出的分数与对手的数据库记录相比是倒数的。 理想的MySQL调用是: (需要向后)。 问题答案: MYSQL没有内置类似函数。但是您可以
我有以下结构 和3个查询 解释我为什么只有第一个作品???? 我一辈子都在用第三个!
问题内容: 我正在尝试将一些JavaScript代码从MicrosoftAjax移到JQuery。我在MicrosoftAjax中使用了流行的.net方法中的JavaScript等效项,例如String.format(),String.startsWith()等。jQuery中是否具有等效项? 问题答案: ASP.NET AJAX的源代码可供您参考,因此您可以仔细阅读它,并将要继续使用的部分包含在