我使用的是Android Sqlite,想要执行两个查询并合并结果。如果对组合结果进行排序,则一切正常。但我希望每个查询的排序顺序分开,然后组合结果。
这是我从SQL: SELECT with UNION, ORDER BY and LIMIT找到的并验证http://sqlfiddle.com/#!5/98b6d/16上的查询并且工作正常。
select * from (select * from supportContacts where (id=1) order by id asc)
UNION ALL
select * from (select * from supportContacts where (id!=1) order by RANDOM())
但是我将如何在android sqlite ContentResolver.query()
上执行此查询,或者使用rawQuery
有什么办法。
注意:我正在使用此查询从媒体提供程序获取MediaStore.EXTERNAL_CONTENT_URI
的所有音频文件,但我知道音频文件的ID,因此我的第一个查询将只获得单个音频,第二个查询将获取除已知音频ID之外的所有音频。
答案 0 :(得分:0)
您可以使用SQLiteQueryBuilder中的buildUnionQuery方法。
有关详细信息,请查看以下链接 https://developer.android.com/reference/android/database/sqlite/SQLiteQueryBuilder.html#buildUnionQuery(java.lang.String[],java.lang.String,java.lang.String)
如果这个答案对您有所帮助,请将其标记为答案