带启动和限制的PHP mssql查询 - 追加查询问题
问题描述:
我通常在PHP/MySQL中编写代码,但对于此项目必须使用MSSQL。带启动和限制的PHP mssql查询 - 追加查询问题
下面的逻辑可以在MySQL中工作,但是因为在MSSQL中设置限制是一个非常复杂的查询,所以当我想要附加到查询时,它会引发问题。我玩过这个查询,试图弄清楚它应该如何,但无法让它工作。请帮忙。
//get all products for shopkeeper
if($limit == 0) {
$prod_qry = "SELECT id, productName FROM products WITH(NOLOCK) WHERE shopkeeper = '$this->shopkeeper'";
}
if($limit > 0) {
$prod_qry = "SELECT * FROM (SELECT id, productName, ROW_NUMBER() OVER (ORDER BY id) as row FROM products WITH(NOLOCK) WHERE shopkeeper='$this->shopkeeper' ) a WHERE row > $start and row <= $limit";
}
if($hidden == 1) {
$prod_qry .= " AND Hidden !='1'";
}
if($rating != 0) {
$prod_qry .= " AND rating > '$rating'";
}
* 编辑 * 伊夫想通了,如下修改代码:
$prod_qry = "SELECT * FROM (SELECT id, productName, ROW_NUMBER() OVER (ORDER BY id) as row FROM products WITH(NOLOCK) WHERE shopkeeper='$this->shopkeeper'" ;
if($hidden == 1) {
$prod_qry .= " AND Hidden !='1'";
}
if($rating != 0) {
$prod_qry .= " AND rating > '$rating'";
}
$prod_qry .= ") a ";
if($limit > 0) {
$prod_qry .= " WHERE row > $start and row <= $limit";
}
答
我已经编辑上面的答案的问题。
“但无法让它工作。”你可以说得更详细点吗?什么是错误信息? – 2012-01-04 13:22:27
如果您在运行之前输出查询,它看起来像什么?它是否正确地形成? – ManseUK 2012-01-04 13:58:05
这是问题,我不知道如何正确地形成它,我不熟悉MSSQL。 – LeeTee 2012-01-04 14:02:10