1

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

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

我尝试为每个播放列表条目分别查询数据库,它可以正常工作,以正确的顺序为我提供信息,但它当然很多,我的意思是慢得多。

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

4

1 回答 1

1

您可以构建自己的 order by 子句,将每首歌曲包含在列表中:

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

这会为每首歌曲分配一个编号。此数字仅在 order by 子句中用于对结果进行排序。

于 2012-07-21T17:24:48.930 回答