在我之前的项目中,我保留了单选按钮,如果选择了任何单选按钮(主题),我会动态地将特定的 id 发送到查询。但是现在我需要保留复选框而不是单选按钮,这意味着可以进行多选。因此,如果选择了多个复选框,我如何将 id 发送到查询以检索数据。
从 my_id = 92 的 mytable 中选择 *
在上面的查询中,代替 92 我正在动态传递值。但是现在如果我选择了多个复选框,那么如何将值动态发送到查询以及如何显示数据库表中的数据。
任何人都可以帮助我解决这个问题。提前致谢。
在我之前的项目中,我保留了单选按钮,如果选择了任何单选按钮(主题),我会动态地将特定的 id 发送到查询。但是现在我需要保留复选框而不是单选按钮,这意味着可以进行多选。因此,如果选择了多个复选框,我如何将 id 发送到查询以检索数据。
从 my_id = 92 的 mytable 中选择 *
在上面的查询中,代替 92 我正在动态传递值。但是现在如果我选择了多个复选框,那么如何将值动态发送到查询以及如何显示数据库表中的数据。
任何人都可以帮助我解决这个问题。提前致谢。
您可以尝试类似SELECT * FROM mytable WHERE my_id IN (92,93,94)
,在括号中添加任意数量的 id。
现在有趣的部分是如何动态构建该字符串。我的建议是在你的 id 列表上使用迭代来构建一个字符串。
String whereClause = "my_id IN (";
for (String id : idList) {
if (whereClause.charAt(whereClause.length - 1) != "(") {
whereClause += ",";
}
whereClause += id;
}
whereClause += ")";
一旦你建立了这个字符串,你可以将它作为selection
参数传递给你的数据库查询方法。
怎么样SELECT * FROM mytable WHERE my_id = 92 OR my_id = 93
?
您还应该使用 Android 提供的 API,如下所示:
final Cursor c = mDb.query(true, "mytable",
new String[] { "name, description, title" }, // columns
"myid = ? OR myid = ?", // WHERE
new String[] { "92", "93" }, // WHERE args
null, // GROUPBY ***
null, // HAVING ***
null, // ORDER BY ***
null); // LIMIT