2015-09-05 37 views
0

我試圖更新整個列,但它似乎只更新第一個匹配的行。試圖更新列

這是我的代碼

$sql = 'UPDATE tree SET sort_order = sort_order+1 WHERE sort_order > :sort_order AND reply_to = :id'; 
     $query = $app->getConnection()->prepare($sql); 
     $query->execute(array(':sort_order' => get_sort(), 
           ':id' =>$id 
          )); 

如何更新列?我知道他們有更多的比賽。

+0

您的查詢看起來相似ct爲您陳述的意圖。樣本數據和實際/期望的結果可能有助於解釋發生了什麼。 –

回答

0

,但它似乎看到下面

WHERE sort_order > :sort_order AND reply_to = :id' 

只更新第一個匹配行

是啊,因爲你已經使用使用WHERE子句的過濾器,如果你要更新所有行然後刪除WHERE條件

UPDATE tree SET sort_order = sort_order+1; 
+0

是的。說我想更新上面的記錄5. where子句不是問題。 – Adam

+0

然後從查詢中刪除'AND reply_to =:id''條件。 – Rahul

+0

如果我想更新5以上的所有記錄,並且行reply_to中的值爲1,該怎麼辦?我將如何解決這個問題? – Adam