dpnzf48660 2018-01-11 02:12
浏览 150

PHP分页MSSQL替代LIMIT?

To paginate a select query normally I would do this:

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

However, in MSSQL there is no LIMIT condition, so I tried with:

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

And I get the error:

42000 - [SQL Server]Invalid usage of the option NEXT in the FETCH statement.

So what exactly should I do to paginate results?

  • 写回答

2条回答 默认 最新

  • doulian4762 2018-01-11 02:22
    关注

    The MS SQL equivalent to MySQL's LIMIT clause is TOP.

    SELECT TOP 10 * FROM items WHERE condition = 1; 
    

    Will return the top ten rows, the same way it is done with LIMIT here:

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

    For more details (since I don't know all the context of your code) you can take a look here.

    评论

报告相同问题?

悬赏问题

  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突
  • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大
  • ¥15 import arcpy出现importing _arcgisscripting 找不到相关程序
  • ¥15 onvif+openssl,vs2022编译openssl64
  • ¥15 iOS 自定义输入法-第三方输入法