Bos*_*one 21 sql sqlite android
我正在尝试运行NOT IN
select NOT IN
列表是动态的.就像是
SELECT id, type FROM CONTACTS where type NOT IN ('connect','answer')
Run Code Online (Sandbox Code Playgroud)
在代码中,我徒劳的尝试是:
db.query(TABLE, new String[] { "id", ""}, " type NOT IN (?)", "connect,answer",
null, null, null); // didn't work
db.query(TABLE, new String[] { "id", ""}, " type NOT IN (?)", "'connect','answer'",
null, null, null); // didn't work
Run Code Online (Sandbox Code Playgroud)
我对此的看法是,?
替换将我的逗号列表视为单个参数.我确实找到了一个解决方案,但它相当难看,所以我不会在这里发布它,直到有人提出更优雅的东西
Ale*_*kka 21
你不能只放一个'?' 而不是值列表.因此,尝试参数化列表几乎没有什么好处.当然,人们可以创建2,4,16值准备语句,..." type NOT IN (?,?)", new String[]{ "connect","answer" },...
但即使在具有远程RDBMS的服务器上,它也具有可疑价值.相反,做
db.query(TABLE, new String[] { "id", ""}, " type NOT IN ('connect','answer')",
null, null, null, null);
Run Code Online (Sandbox Code Playgroud)
如果列表是动态的,则必须转义字符串并将它们放入单引号列表中.