2012-04-09 12 views
1

更新が必要なデータベースエントリがあります。JavaのWHERE句を複数使用してSQLデータベースを更新

この方法は明らかに機能しませんが、何をしようとしているのかを説明するのに役立ちます。

public void updateEntry(String user, String message, String mentions, String og) { 
    ContentValues args = new ContentValues(); 
    args.put(KEY_MESSAGE, message); 
    args.put(KEY_MENTIONS, mentions); 
    this.db.update(ENTRY_TABLE, args, ("message = ?", "username = "+user), new String[] {og}); 
} 

「名前」列と「メッセージ」列の両方が入力値と一致するエントリを更新する必要があります。

データベースには同じユーザーの複数のエントリがあり、同じメッセージで複数のユーザーがいるため、複数のwhere句が必要です。

sqlクエリで2つ(またはそれ以上)のwhere節を使用するにはどうすればよいですか?

答えて

10

この変更は動作するはずです。..

this.db.update(ENTRY_TABLE, args, ("message = ? AND username = "+user), new String[] {og}); 
+0

素晴らしい!ありがとうございました。私は&&を試し続けた。私はSQLをあまりにも多く使用していないので、文法はまったくわかりません。 – r2DoesInc

+0

これを行うより正確な方法は、 "username =?" String配列に "user" varを入れてください。@secretlmは示唆しています。 – pdub

2

私はJavaの構文に慣れていませんが、SQLではANDを使用して複数のWHERE句を結合できます。このような何か:

WHERE message = 'foo' AND username = 'bar' 
3

使用

db.rawQuery(your SQL update query); 
4

句のようなあなたが2つ(またはそれ以上)を使用することができます。

this.db.update(ENTRY_TABLE, args, ("message = ? and Field1 =? and Field2 =? and username = "+user), new String[] {og}); 

Fieldsの値はog(配列)によって提供されます

関連する問題