Android rawQuery – 有没有办法使用参数化的“IN”来收集数据

我试图在WHERE中使用动态创建的列表,例如:

select * from books where id in (123, 120, 125) and bookCover = 'Hardcover'

我想在rawQuery中使用它,我在“?”中准备了SQL形式,例如:

select * from books here id in (?) and bookCover = ?

有什么办法,如何在选择的IN子句中放入“ids”列表?或者我必须忘记准备好的陈述“?” ?

在此先感谢您的帮助.搜索

解决方法:

不 – 我不知道任何数据库(如Oracle,SQL Server,SQLite,Postgres等)提供您所要求的…

您可以获得的最近解决方案是将ID插入第二个表,然后在IN部分中使用子查询…

MyIDTable hat 2字段QNO(只是一个键)和ID(包含您在IN中想要的ID …您首先插入3行具有相同的QNO和相应的ID …

INSERT INTO MyIDTable (QNO, ID) VALUES (3, 120);
INSERT INTO MyIDTable (QNO, ID) VALUES (3, 123);
INSERT INTO MyIDTable (QNO, ID) VALUES (3, 125);

然后你可以像这样做一个SELECT:

select * from books where id in (SELECT T.ID FROM MyIDTable T WHERE T.QNO = 3) and
bookCover = 'Hardcover'

这基本上允许这样:

select * from books where id in (SELECT T.ID FROM MyIDTable T WHERE T.QNO = ?) and
bookCover = ?

在完成查找特定ID集后,您可以通过DELETE FROM MyIDTable WHERE QNO = 3进行清理.

相关文章

SQLite架构简单,又有Json计算能力,有时会承担Json文件/RES...
使用Python操作内置数据库SQLite以及MySQL数据库。
破解微信数据库密码,用python导出微信聊天记录
(Unity)SQLite 是一个软件库,实现了自给自足的、无服务器...
安卓开发,利用SQLite实现登陆注册功能