PHP SQL Server 替代 TOP 和 MYSQL 的限制


PHP SQL Server Alternative for TOP and LIMIT of MYSQL

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

基本上,我在MySQL中使用了LIMIT来限制分页。但是,SQL Server不支持此功能,并且我真的很难像3个月一样弄清楚这一点。

以下是我想在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'));

我可以轻松地在代码行中添加 LIMIT$construct 1 ="从 $construct 的融合中选择 *"; 但我没有这样做,因为无论如何这是不可能的。

任何人都可以帮助我如何翻译或重写它?蒂亚。

看看这些帖子。从MySQL模拟LIMIT有点棘手。

限制 10..20 在 SQL Server 中

如何使用Microsoft SQL Server实现LIMIT?

从SQL server 2012开始,有OFFSET和FETCH。

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

它应该等同于限制 10、5。

TOP 相当于 SQL Server 中的 LIMIT:http://www.w3schools.com/sql/sql_top.asp

正如下面所指出的,TOP不是等效的现实。事实上,你需要使用 OFFSET 和 FETCH 来完全匹配 LIMIT 行为:https://msdn.microsoft.com/en-us/library/ms188385.aspx