2017-04-07 97 views
0

我有SQLiteDatabase.delete功能一个奇怪的情况的Android SQLiteDatabase删除功能

这是不删除任何空记录:

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

这删除所有空的记录没有任何问题:

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

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

回答

1

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

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

+0

噢,我的天啊,谢谢你,你说得对。 –