PHP SQL MYSQL 的 TOP 和 LIMIT 服务器替代方案
PHP SQL Server Alternative for TOP and LIMIT of MYSQL
我想弄清楚如何将我在 php mysql 中创建的代码翻译成 php sqlsrv。
基本上,我在MySQL中使用LIMIT来限制分页。然而,这在 SQL 服务器中不受支持,我真的很难像 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 $construct1 ="SELECT * FROM ENSEMBLE WHERE $construct";但我没有这样做,因为无论如何都不可能。
任何人都可以帮助我如何翻译或重写它?
TIA.
TOP 相当于 sql 服务器中的 LIMIT:http://www.w3schools.com/sql/sql_top.asp
正如下面所指出的,TOP 并不是真正的等价物。事实上,您需要使用 OFFSET 和 FETCH 来精确匹配 LIMIT 行为:https://msdn.microsoft.com/en-us/library/ms188385.aspx
看看这些帖子。从 MySQL 模拟 LIMIT 有点棘手。
LIMIT 10..20 in SQL Server
How to implement LIMIT with Microsoft SQL Server?
来自 SQL 服务器 2012 OFFSET and FETCH。
SELECT * FROM Table ORDER BY FirstName OFFSET 10 ROWS FETCH NEXT 5 ROWS ONLY;
应该相当于LIMIT 10, 5.
我想弄清楚如何将我在 php mysql 中创建的代码翻译成 php sqlsrv。
基本上,我在MySQL中使用LIMIT来限制分页。然而,这在 SQL 服务器中不受支持,我真的很难像 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 $construct1 ="SELECT * FROM ENSEMBLE WHERE $construct";但我没有这样做,因为无论如何都不可能。
任何人都可以帮助我如何翻译或重写它? TIA.
TOP 相当于 sql 服务器中的 LIMIT:http://www.w3schools.com/sql/sql_top.asp
正如下面所指出的,TOP 并不是真正的等价物。事实上,您需要使用 OFFSET 和 FETCH 来精确匹配 LIMIT 行为:https://msdn.microsoft.com/en-us/library/ms188385.aspx
看看这些帖子。从 MySQL 模拟 LIMIT 有点棘手。
LIMIT 10..20 in SQL Server
How to implement LIMIT with Microsoft SQL Server?
来自 SQL 服务器 2012 OFFSET and FETCH。
SELECT * FROM Table ORDER BY FirstName OFFSET 10 ROWS FETCH NEXT 5 ROWS ONLY;
应该相当于LIMIT 10, 5.