android - 按选择参数顺序查询数据库

标签 android cursor selection

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

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

我尝试为每个播放列表条目单独查询数据库,它有效,以正确的顺序给我信息,但它当然很多,我的意思是慢很多。

有没有办法在单个查询中执行此操作?

最佳答案

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

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

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

关于android - 按选择参数顺序查询数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11592132/

相关文章:

android - 更新 Android 包,签名过程有问题

sql - 重用的T-SQL游标的起始位置?

mysql - Mysql存储过程中如何创建游标

javafx - 如何改变TableView的选择行为?

qt - QGraphicsItem选择

javascript - 如何在javascript中收集对象数组

android - ConnectivityManager.getActiveNetworkInfo()/NetworkInfo 在 API 29 中已弃用。有什么替代方案?

android - 有入口和大门的地方

java - 读取命令的实时输出

c - C语言中如何将光标移回第一行?