0

在我之前的项目中,我保留了单选按钮,如果选择了任何单选按钮(主题),我会动态地将特定的 id 发送到查询。但是现在我需要保留复选框而不是单选按钮,这意味着可以进行多选。因此,如果选择了多个复选框,我如何将 id 发送到查询以检索数据。

从 my_id = 92 的 mytable 中选择 *

在上面的查询中,代替 92 我正在动态传递值。但是现在如果我选择了多个复选框,那么如何将值动态发送到查询以及如何显示数据库表中的数据。

任何人都可以帮助我解决这个问题。提前致谢。

4

2 回答 2

2

您可以尝试类似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参数传递给你的数据库查询方法。

于 2012-08-17T13:08:49.043 回答
0

怎么样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
于 2012-08-17T12:33:13.147 回答