0

可能重复:
SQLite rawQuery selectionArgs 和 Integers 字段

这是我的表架构

create table Account (accountId) // accountId is long in practice

我无法使用 delete 的参数版本来删除给定长 id 的行。下面的 getPk() 返回一个长 id。

getDb().delete("Account", "accountId = ?", new String[]{ account.getPk().toString()});

但是,我可以通过在 where 子句中传递参数来解决这个问题。

getDb().delete("Account", "accountId = " + account.getPk().toString(), null);

我的猜测是 delete 的参数版本适用于字符串参数,但不适用于整数/长参数。有什么见解吗?

编辑: 另一个奇怪的事情是,如果我将表模式更改为下面,删除的两个版本都可以正常工作。

create table Account (accountId integer primary key autoincrement)
4

0 回答 0