我们可以在 Sql server 中使用以下代码从索引 i 到 j 选择行。如何在 mysql 中执行此操作?
select * from
(SELECT ROW_NUMBER() OVER (ORDER BY FieldName asc) as row,
* from TableName)
WHERE row between STARTINDEX AND ENDINDEX
我们可以在 Sql server 中使用以下代码从索引 i 到 j 选择行。如何在 mysql 中执行此操作?
select * from
(SELECT ROW_NUMBER() OVER (ORDER BY FieldName asc) as row,
* from TableName)
WHERE row between STARTINDEX AND ENDINDEX
我不确定我理解的问题是否完全正确,因为我对 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