Android SQLiteDatabase删除功能

时间:2017-04-07 14:09:25

标签: android sqlite android-sqlite

我有一个SQLiteDatabase.delete函数的奇怪情况

这不会删除任何空记录:

SQLiteDatabase.delete(Table, "ifnull(Field, 0) = ?", new String[]{"0"});

这会删除所有空记录而不会出现任何问题:

SQLiteDatabase.execSQL("delete from Table where ifnull(Field, 0) = 0");

有人可以解释一下,为什么在第一种情况下空记录没有被删除?

1 个答案:

答案 0 :(得分:1)

0是一个数字,"0"是一个字符串。不同类型的值不相等。

Android数据库API不允许您将String以外的任何类型用于delete()的参数。如果要将数字放入SQL语句,请不要使用参数,而是直接插入。