Android Sqlite查询联合所有

Android Sqlite查询联合所有,android,sqlite,Android,Sqlite,下面是我的查询代码,我目前只传递了100条记录的DB表中存在的8个产品的ID String query = "SELECT productId IN (" + makePlaceholders(ids.length)+"),"+ " * FROM " + tableName + " WHERE type LIKE 'percent'" + " UNION ALL " + "SELECT

下面是我的查询代码,我目前只传递了100条记录的DB表中存在的8个产品的ID

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);
我的问题是,它使用
IN
子句显示所有记录(即全部100条记录),而不是仅显示我从ID传递的8条记录。 我希望这8条记录(或更多在函数中传递的记录)以现金显示
ORDER

现在我应该如何编写这个查询来实现我的目标

编辑:
为此,我只使用了一个表。

我从未见过这样的sql:

SELECT productId IN (..) from ... where ....
我希望看到

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

中的
移动到
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);

简单地说:你根本不懂SQL
在(…)中选择productId
什么<代码>键入类似“百分比”
(如果不使用通配符,则无需键入类似的
)我不会使用
联合所有的
(顺便说一句,它也包括重复项),而是使用
“从“+tableName+”中选择*,其中键入('percent'、'category')和productId IN(“+makePlaceholders(ids.length)+”)
我建议的查询是否有效?只是出于好奇。@DerGol…你上次回答的问题帮助了我。这里的问题没有解决,所以我只是用代码完成了全部工作,而不是从DB完成。伙计,这只返回3条记录扫描您确认您要查找的8条记录的
类型
列等于
百分比
(因为您的
like
语句中没有通配符)在第一个表中,在第二个表中,键入
等于
货币
?也许发布一些示例数据会有所帮助。这只是一个无法从您的问题中辨别出来的表。在完成您所说的操作后,我收到以下消息:按术语排列的第一个订单与结果集中的任何列都不匹配。