2012-01-04 41 views
0

我通常在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"; 
    } 
+0

「但無法讓它工作。」你可以說得更詳細點嗎?什麼是錯誤信息? – 2012-01-04 13:22:27

+0

如果您在運行之前輸出查詢,它看起來像什麼?它是否正確地形成? – ManseUK 2012-01-04 13:58:05

+0

這是問題,我不知道如何正確地形成它,我不熟悉MSSQL。 – LeeTee 2012-01-04 14:02:10

回答

0

我已經編輯上面的答案的問題。