2012-02-11 20 views
1

私はuseridとidに一致する最後のレコードを更新しようとしています。以下のクエリでは、usedidに一致するすべてのレコードが更新されます。ユーザーの最後のレコードのみを更新するにはどうすればよいですか?codeigniterから変数を含むレコードを1つ更新する

$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

次の2つのクエリを実行できます。まず、正しいID(パンチの主キー)を取得し、次に2番目の更新を取得します。または、次のようなサブクエリを持つクエリ:

$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

[OK]をクリックすると、正しいパスに設定されます。最後に: '$ sql1 =" UPDATE punch SET punch.id =?、punch.id = punch.id DESC LIMIT 1)AS p) ";' ありがとう –

+0

@RobinBantjesこの回答が役に立った場合は、それを合格とマークしてください。これを行う方法と必要な理由についての詳細は、[回答の受け取りはどのように受け付けますか?](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work)を参照してください。 – DaveRandom

関連する問題