将MSSQL分页语句转换为MySQL分页语句

时间:2013-11-18 09:28:36

标签: mysql sql-server pagination migration

我希望将基本的分页MSSQL语句转换为MySQL。 特别是ROW_NUMBER()和OVER与ORDER BY相结合对我来说很棘手。

SELECT * FROM (select ROW_NUMBER() OVER (ORDER BY publishdate DESC) as RowNum,
* FROM news WHERE publishdate <=getdate()) as info
WHERE RowNum > 0 AND RowNum <= (100)

我如何将其转换为MySQL语句?

1 个答案:

答案 0 :(得分:1)

尝试使用LIMIT这样的语法:

select * 
FROM news WHERE publishdate <= CURDATE()
LIMIT 0,100; # Retrieve rows 1-100

LIMIT子句可用于约束SELECT语句返回的行数。 LIMIT需要一个或两个数字参数,它们都必须是非负整数常量(使用预准备语句时除外)。

使用两个参数,第一个参数指定要返回的第一行的偏移量,第二个参数指定要返回的最大行数。初始行的偏移量为0(不是1):

SELECT * FROM tbl LIMIT 5,10;  # Retrieve rows 6-15