我有一个SQLiteDatabase.delete函数的奇怪情况
这不会删除任何空记录:
SQLiteDatabase.delete(Table, "ifnull(Field, 0) = ?", new String[]{"0"});
这会删除所有空记录而不会出现任何问题:
SQLiteDatabase.execSQL("delete from Table where ifnull(Field, 0) = 0");
有人可以解释一下,为什么在第一种情况下空记录没有被删除?
答案 0 :(得分:1)
0
是一个数字,"0"
是一个字符串。不同类型的值不相等。
Android数据库API不允许您将String
以外的任何类型用于delete()
的参数。如果要将数字放入SQL语句,请不要使用参数,而是直接插入。