dimanche 25 octobre 2015

Delete only selected result

In my database I can have more then one same vale for COLUMN_WORD, and when I use ordinary query db.delete(DictDB.TABLE, DictDB.COLUMN_WORD + " = ?", new String[] {word} ); it deletes all columns with word 'word' as expected. So I made custom query to remove only selected (with onClick listener) result. Why this query doesn't work?

public void deleteOneResult(String word) {
    SQLiteDatabase db = dbRjecnik.getWritableDatabase();

    String q = "DELETE FROM " + DictDB.TABLE + " WHERE " + DictDB.COLUMN_WORD +
            " IN (SELECT " + DictDB.COLUMN_WORD + " FROM " + DictDB.TABLE +
            " WHERE " + DictDB.COLUMN_WORD + " = '" + word + "' LIMIT 1);";

    try {
        db.rawQuery(q, null);
    } catch (Exception e) {
        Snackbar.make(getCurrentFocus(), "Bad query", Snackbar.LENGTH_LONG).show();
    }
    db.close();
}

Aucun commentaire:

Enregistrer un commentaire