ai didi

Android rawQuery - 有没有办法使用参数化的 "IN"来收集数据

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:06:45 24 4
gpt4 key购买 nike

我正在尝试在 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/

24 4 0
文章推荐: c# - Android 单声道 : ListView Delete Items NotifyDataSet Changed
文章推荐: 具有预增量 : With or without parentheses is the same? 的 C++ 箭头运算符
文章推荐: c++ - 如何使用 PCL 读取 .ply 文件
文章推荐: php - android与MYSQL数据库连接返回null值
塔克拉玛干
个人简介

我是一名优秀的程序员,十分优秀!

滴滴打车优惠券免费领取
滴滴打车优惠券
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com