簡體   English   中英

Android查詢MediaStore使用IN子句

[英]Android Query MediaStore using IN clause

我正在嘗試拉出我存儲在“播放列表”中的項目的所有軌道,我有一組android.provider.MediaStore.Audio.Media._ID值,並且正在嘗試使用IN建立查詢子句,下面的示例不起作用...

        String[] projection = { android.provider.MediaStore.Audio.Media.TITLE, android.provider.MediaStore.Audio.Media._ID,
                android.provider.MediaStore.Audio.Media.ALBUM, android.provider.MediaStore.Audio.Media.ARTIST,
                android.provider.MediaStore.Audio.Media.DURATION, android.provider.MediaStore.Audio.Media.DISPLAY_NAME,
                android.provider.MediaStore.Audio.Media.ALBUM_ID, android.provider.MediaStore.Audio.Media.ARTIST_ID};

        String whereString = android.provider.MediaStore.Audio.Media._ID + " IN (?)";

        String[] selectionArgs = {"626,625"};

但是,如果我將selecionArgs更改為

        String[] selectionArgs = {"626"};

確實有效

IN子句應該工作還是我必須建立許多OR語句(我顯然不想這樣做)

萬一其他人嘗試這樣做,則IN語句需要匹配的數字“?”,即,您不能有一個包含值列表的單個參數,所以這可行...

    String[] projection = { android.provider.MediaStore.Audio.Media.TITLE, android.provider.MediaStore.Audio.Media._ID,
            android.provider.MediaStore.Audio.Media.ALBUM, android.provider.MediaStore.Audio.Media.ARTIST,
            android.provider.MediaStore.Audio.Media.DURATION, android.provider.MediaStore.Audio.Media.DISPLAY_NAME,
            android.provider.MediaStore.Audio.Media.ALBUM_ID, android.provider.MediaStore.Audio.Media.ARTIST_ID};

    String whereString = android.provider.MediaStore.Audio.Media._ID + " IN (?,?)";

    String[] selectionArgs = {"626","625"};

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM