PHP分页MSSQL替代LIMIT?

时间:2018-01-11 02:12:07

标签: php sql-server pagination limit

要正常分页选择查询,我会这样做:

SELECT * FROM items WHERE condition = 1 LIMIT $start, $items

但是,在MSSQL中没有LIMIT条件,所以我尝试了:

SELECT * FROM items WHERE condition = 1 OFFSET $start ROWS FETCH NEXT $items ROWS ONLY

我收到错误:

42000 - [SQL Server] FETCH语句中NEXT选项的使用无效。

那么究竟应该对分页结果做些什么呢?

2 个答案:

答案 0 :(得分:4)

这可能会对你有所帮助。 OFFSET-FETCH子句为您提供了从结果集中仅获取结果窗口或页面的选项。 OFFSET-FETCH只能与ORDER BY子句一起使用。

SELECT P_Name FROM ITEMS ORDER BY  P_Name OFFSET 10 ROWS;

SRC:https://technet.microsoft.com/en-us/library/gg699618.aspx

答案 1 :(得分:0)

与MySQL的LIMIT子句相当的MS SQL是TOP。

SELECT TOP 10 * FROM items WHERE condition = 1; 

将返回前十行,就像在这里使用LIMIT一样:

SELECT * FROM items WHERE condition = 1 stuff LIMIT 10; 

有关详细信息(因为我不知道您的代码的所有上下文),您可以查看here