一尘不染

PHP SQL Server替代,适用于MYSQL的TOP和LIMIT

sql

我试图弄清楚如何将我在php mysql中创建的代码转换为php sqlsrv。

基本上,我在MySQL中使用LIMIT来限制分页。但是,SQL Server不支持此功能,而我确实已经很难解决三个月的问题了。

以下是我想在SQLSRV上转换的MySQL代码:

$start="";
$per_page = 1;
$start = $_GET['start'];
$max_pages = ($foundnum / $per_page);
if(!$start)
$start=0; 
$getquery = mysql_query("SELECT * FROM knowledgebase WHERE $construct LIMIT $start, $per_page");

下面的代码是我目前在SQLSRV中运行时遇到的问题:

$start="";
$per_page = 1;
$start = $_GET['start'];
$max_pages = ($foundnum / $per_page);
if(!$start)
$start=0; 
$construct1 ="SELECT * FROM ENSEMBLE WHERE $construct";
$run1=sqlsrv_query($con,$construct1, array(), array('scrollable' => 'keyset'));

我可以在代码$ construct1 =“ SELECT * FROM ENSEMBLE WHERE $
construct”的行中轻松添加LIMIT;但我没有这样做,因为无论如何这都是不可能的。

任何人都可以帮助我解决如何翻译或重写它?TIA。


阅读 140

收藏
2021-05-16

共1个答案

一尘不染

从SQL Server 2012开始,OFFSET和FETCH

SELECT * FROM Table ORDER BY FirstName OFFSET 10 ROWS FETCH NEXT 5 ROWS ONLY;

它应该等效于LIMIT 10、5。

2021-05-16