在Oracle OCI中,我可以准备一个如下声明:
select * from t where pk in :1
并绑定一个VArray集合:1占位符。
除非我使用以下其中一种方法,否则我认为没有办法在SQLite中执行等效操作:
制备
从t中选择*,其中pk =:1
而是用我的集合中的所有pks执行N次,并手动对N个查询中的行进行“联合”
将我的pk集合放在一个临时表中,然后用它来连接。
我错过了什么吗?什么是模拟OCI集合绑定的推荐方法?谢谢,--DD
答案 0 :(得分:3)
唉,sqlite
只支持绑定到标量,所以你不能将参数绑定到集合。如果收集器中的项目数量有限,您可以准备一个带有“IN (?, ?, ?, ?)'
[[假设最多四个项目]]的语句,然后绑定数组中的实际标量(如果小于4,则绑定最后一个一个重复,或绑定一个你知道“不可能”作为占位符的值);否则,你绘制的方法确实或多或少都会浮现在脑海中。