Android 关于sqlite中 ...where... in 的实现

在SQL语句中我们很容易实现一个delete from table where column in (字段一,字段二,字段三)的语句。


android中delete方法:

public int delete(String table, String whereClause, String[] whereArgs) {
        acquireReference();
        try {
            SQLiteStatement statement =  new SQLiteStatement(this, "DELETE FROM " + table +
                    (!TextUtils.isEmpty(whereClause) ? " WHERE " + whereClause : ""), whereArgs);
            try {
                return statement.executeUpdateDelete();
            } finally {
                statement.close();
            }
        } finally {
            releaseReference();
        }
    }


但是当我们调用:

db.delete("table","phoneNumber in (?) ","10010,10086");

的时候就会出现删除数据异常,并不能删除电话号码为10010和10086的数据。

db.delete("table","phoneNumber in (?) ","‘10010’,‘10086’");

这样可以分开删除掉10010和10086的数据,前面的操作实际上是删除 这个字符串的 "10010,10086" 数据。

你可能感兴趣的:(Android 关于sqlite中 ...where... in 的实现)