2012-02-11 42 views
1

我試圖更新與userid和id匹配的最後一條記錄。在下面的查詢中,所有匹配usedid的記錄都會更新。我如何獲取它只更新用戶的最後一條記錄?用codeigniter中的變量更新一條記錄

$sql1 = "UPDATE punch SET time=?, activitydate=? WHERE id = ? ORDER BY id DESC LIMIT 1"; 
     $query = $this->db->query($sql1, array($data['time'], $data['activitydate'],  $data['id'])); 

回答

2

您可以進行兩個查詢:第一次獲取正確的ID(衝壓主鍵),第二次更新。或者像這樣的子查詢查詢:

$sql1 = "UPDATE punch a SET a.time=?, a.activitydate=? WHERE a.id = (select b.id from punch b where b.userid=? ORDER BY b.id DESC LIMIT 1)"; 
+0

好的,這使我在正確的道路上。結束於: '$ sql1 =「UPDATE punch SET punch.time =?,punch.activitydate =?WHERE punch.id =(選擇punch.id from(從punch中選擇punch.id,其中punch.id =?ORDER BY punch.id DESC LIMIT 1)AS p)「;' 謝謝 – 2012-02-12 09:13:10

+0

@RobinBantjes如果此答案對您有幫助,請將其標記爲已接受。請參閱[如何接受答案的工作?](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work)瞭解更多關於如何做到這一點以及爲什麼你應該這樣做的信息。 – DaveRandom 2012-09-17 12:41:05