私は周りを検索してきましたが、解決策や実際の例を見つけることができなかったので、ここに行きます.
ユーザーのリストを効果的に作成する、異なるフィールドを持つ 5 つの列を持つ SQLite データベースをセットアップしました。自動インクリメントに設定されている ROWID を除いて、リストには同じ値が複数あります。
値がデータベースに入力されると、ユーザーもプログラムも ROWID を認識しないため、他の 4 つのフィールドがすべて含まれている場合、ユーザーが 1 つの行を削除できるようにしたいと考えています。
私のコードは次のようになります。
Database
.delete(DATABASE_TABLE,
"KEY_DATE='date' AND KEY_GRADE='style2' AND KEY_STYLE='style' AND KEY_PUMPLEVEL='pumpLevel'",
null);
ただし、これは値を削除しません。このコマンドの構文に問題があることはほぼ確実です。
複数の where 句を使用して delete コマンドの where 句をフォーマットするにはどうすればよいですか?
以下からの解決策:
ourDatabase.delete(DATABASE_TABLE, "ROWID = (SELECT Max(ROWID) FROM "
+ DATABASE_TABLE + " WHERE " + "date=? AND grade=? AND "
+ "style=? AND pump_level=?)", new String[] { date, grade,
style, pumpLevel });