我正在尝试查询Android MediaStore.Audio.Media数据库。我有一个'播放列表',一个字符串的ArrayList,它包含设备上歌曲的路径(数据库中的数据列)。在播放列表中,我只有一些歌曲(当然,并非当前设备上的所有歌曲),我希望光标从数据库中返回艺术家,标题和专辑ID信息。查询本身不是问题,我只是制作选择字符串并将播放列表中的条目作为选择参数,它工作正常。
问题是它返回数据的顺序。当null被设置为'order by'参数时,游标以升序返回数据。播放列表中的歌曲是随机排列的,我需要按顺序返回的信息。
我试图分别为每个播放列表条目查询数据库,它有效,按正确顺序给我信息,但当然是很多,我的意思是慢很多。
有没有办法在单个查询中执行此操作?
答案 0 :(得分:1)
您可以构建自己的order by子句,其中包含列表中的每首歌曲:
order by (case when song = <first song> then 1
when song = <second song> then 2
. . .
end)
这为每首歌分配了一个数字。此数字仅在order by子句中用于对结果进行排序。