Android Sqlite Query联合所有

时间:2015-08-03 11:41:55

标签: android sqlite

以下是我的查询代码,其中我目前只传递了8个产品的ID,这些产品存在于100个记录的数据库表中。

String query = "SELECT productId IN (" + makePlaceholders(ids.length)+"),"+ " * FROM " + tableName + " WHERE type LIKE 'percent'"
                            + " UNION ALL "
                            + "SELECT productId IN (" + makePlaceholders(ids.length)+"),"+ " * FROM " + tableName + " WHERE type LIKE 'currency' ORDER BY cash DESC";
                    cursor = dataBase.rawQuery(query, ids);

我的问题是,它显示了所有记录(即所有100条记录),而不仅仅是我使用IN子句从ID传递的那8条记录。 我希望这8条记录(或者在函数中传递的更多记录)以现金显示ORDER

现在我应该如何编写此查询以实现我的目标。

修改 我只为此目的使用一张桌子。

2 个答案:

答案 0 :(得分:2)

我从未见过像这样的SQL:

SELECT productId IN (..) from ... where ....

我希望看到

SELECT productId from ... where productId IN (..) and ....

答案 1 :(得分:0)

IN移至WHERE子句,如下所示。

String query = "SELECT * FROM " + tableName + " WHERE type LIKE 'percent' AND " productId IN (" + makePlaceholders(ids.length)+"),"+ "
                            + " UNION ALL "
                            + "SELECT * FROM " + tableName + " WHERE type LIKE 'currency' AND productId IN (" + makePlaceholders(ids.length)+"),"+ " ORDER BY cash DESC";
                    cursor = dataBase.rawQuery(query, ids);
相关问题