作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在尝试在 WHERE 中使用动态创建的列表,例如:
select * from books where id in (123, 120, 125) and bookCover = 'Hardcover'
我想将它与 rawQuery 一起使用,并且我已经在“?”中准备了 SQL。形式,例如:
select * from books here id in (?) and bookCover = ?
有什么办法,如何在 select 的 IN 子句中放入“ids”列表?还是我必须忘记带有“?”的准备好的陈述? ?
在此先感谢您的帮助。搜索过
最佳答案
不——我不知道有任何数据库(如 Oracle、SQL Server、SQLite、Postgres 等)可以满足您的要求...
您可以获得的最接近的解决方案是将 ID 插入第二个表,然后在 IN
部分使用子查询...
MyIDTable
有 2 个字段 QNO
(只是一个键)和 ID
(包含您想要在 IN
...您首先插入 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
进行清理。
关于Android rawQuery - 有没有办法使用参数化的 "IN"来收集数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10018246/
我是一名优秀的程序员,十分优秀!