2012-07-21 26 views
1

我想查询Android MediaStore.Audio.Media数据库。我有一个'播放列表',一个包含设备上歌曲路径(数据库中的数据列)的字符串ArrayList。在播放列表中,我只有一些歌曲(当然,并非当前设备上的所有歌曲),并且我希望光标从数据库中返回艺术家,标题和专辑ID信息。查询本身不是问题,我只是选择字符串并将播放列表中的条目作为选择参数,并且它工作正常。以选择参数顺序查询数据库

问题是它返回数据的顺序。当null设置为'order by'参数时,游标以升序返回数据。播放列表中的歌曲是随机排列的,我需要按照该顺序返回的信息。

我试图单独查询每个播放列表条目的数据库,它的工作原理以正确的顺序给我提供了信息,但它当然很多,我的意思是慢很多。

有没有办法在单个查询中做到这一点?

order by (case when song = <first song> then 1 
       when song = <second song> then 2 
       . . . 
      end) 

这一个号分配给每首歌曲:

回答

1

您可以通过子句,其中包括你每首歌曲的列表构建自己的订单。此编号仅在按顺序by子句中用于排序结果。

+0

辉煌。非常感谢你! – Jermaine 2012-07-22 15:01:48

+0

并且不要忘记在歌曲中避开单引号。 – 2013-06-20 14:06:11