Supprimer SQLite Ligne avec la clause where avec de multiples clauses

J'ai cherché partout et pas réussi à trouver une solution ou du travail exemple donc, ici, va.

J'ai créé une base de données SQLite qui a cinq colonnes avec différents domaines qui s'appuie efficacement une liste pour l'utilisateur. Il y aura plusieurs valeurs dans la liste sont les mêmes, sauf pour le ROWID qui est définie sur auto incrément.

Ni l'utilisateur ni que le programme sache ROWID une fois qu'une valeur a été entrée dans la base de données, donc je veux pour l'utilisateur d'être en mesure de supprimer une ligne si elle contient tous les quatre, les autres champs.

Mon code ressemble à ceci:

Database
            .delete(DATABASE_TABLE,
                    "KEY_DATE='date' AND KEY_GRADE='style2' AND KEY_STYLE='style' AND KEY_PUMPLEVEL='pumpLevel'",
                    null);

Mais cela ne supprime pas toutes les valeurs. Je suis presque certain que la syntaxe de cette commande est à blâmer.

Comment dois-je formater une clause where pour supprimer la commande avec plusieurs clauses where?

Solution ci-dessous:

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 });

OriginalL'auteur Gareth Bowen | 2012-08-28