2017-01-08 7 views
-2

したがって、SQLiteクエリに2番目のパラメータを追加しました。 DATEだけで検索と識別を行うとうまくいきましたが、意図しない行を削除しないように追加の識別子TIMEを追加したかったのです。ここで私が試したことはありますが、間違っていますが、私は何をしようとしているのかを知っておくべきです。SQLiteの2つの列に対してLIKE、?を使用する

public void deleteRowByDateTime (String d, String t){ 
    SQLiteDatabase db = this.getWritableDatabase(); 
    String[] deleteDate = new String[] { "%" +d +"%" }; 
    String[] deleteTime = new String[] { "%" +t +"%" }; 
    db.execSQL("DELETE FROM walk_run_table WHERE DATE LIKE ? AND TIME LIKE ?", deleteDate, deleteTime); 
    db.close(); 
} 

答えて

1

アレイを使用する必要がある理由は、複数の値を入れることができるからです。したがって、2つの配列を使用する代わりに、それを実行します。

String[] args = new String[] { "%" + d +"%", "%" + t +"%" }; 
db.execSQL("DELETE ... ? ... ?", args); 
+0

TIMEとDATEは異なる列です。これはまだ私のために働くでしょうか? – seekingStillness

+1

それぞれの '?'は配列のエントリの1つを使います。 (これは列と直接関係しません) –

+0

非常にクリアです。働いたと私は理解する。ありがとう! – seekingStillness

関連する問題