我们可以用Sql server.how中的以下代码从索引i到j中选择行来在mysql中执行此操作?
select * from
(SELECT ROW_NUMBER() OVER (ORDER BY FieldName asc) as row,
* from TableName)
WHERE row between STARTINDEX AND ENDINDEX发布于 2012-12-02 14:06:09
我不确定我对问题的理解是否完全正确,因为我不太熟悉SQL:您希望按FieldName对结果进行排序,并根据您创建的行号选择结果的某一部分。我会在MySQL中这样写:
SELECT *
FROM TableName
ORDER BY FieldName ASC
LIMIT STARTINDEX-1, ENDINDEX-STARTINDEX在MySQL中,LIMIT index从零开始(在您的SQL代码中从1开始),而LIMIT子句中的other number是您希望获取的记录数
编辑:我的结果缺少行号。如果您想要在结果中显示行号,它将如下所示:
SET @num = STARTINDEX-1;
SELECT @NUM := (@NUM + 1) AS row, TableName.*
FROM TableName
ORDER BY FieldName ASC
LIMIT STARTINDEX-1, ENDINDEX-STARTINDEXSTARTINDEX与第一行的编号相同,因为SELECT会将@NUM加1,即使是在第一次
https://stackoverflow.com/questions/13666771
复制相似问题