如何选择两个索引之间的行

时间:2012-12-02 05:44:41

标签: mysql

我们可以在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

1 个答案:

答案 0 :(得分:1)

我不确定我是否理解完全正确的问题,因为我不熟悉SQL:您希望按FieldName订购结果,并根据您创建的行号选择部分结果。我会在MySQL中写这样的:

SELECT *
FROM TableName
ORDER BY FieldName ASC
LIMIT STARTINDEX-1, ENDINDEX-STARTINDEX

在MySQL中,LIMIT索引从零开始(在SQL代码中从1开始),LIMIT子句中的其他数字是您愿意获得的记录数

编辑:我的结果是缺少行号。如果您想在结果中使用行号,它将如下所示:

SET @num = STARTINDEX-1;
SELECT @NUM := (@NUM + 1) AS row, TableName.*
FROM TableName
ORDER BY FieldName ASC
LIMIT STARTINDEX-1, ENDINDEX-STARTINDEX

STARTINDEX与第一行的编号相同,因为SELECT会在第一次为@NUM添加一个