SQlite支持in、like运算符,在Android中通过ContentResolver的query方法同样可以使用。只是需要注意以下几点:


1.   like操作:注意事项:like前需要有空格

          String title = "Faded";

    where = MediaStore.Audio.Media.TITLE + " like?";    args = new String[]{"%" + title+ "%"};
 2. in 操作:

         如果,要把args和where参数分开写,就像下面这样:

        如:ArrayList<> list;

                where = MediaStore.Audio.Media.TITLE + "  in(?)";

args = new String[]{TextUtils.join(",",list)};

           如果这样写,只有在list中只有一个元素时,能查询到(即返回的cursor.getCount == 1);如果list中有多个元素,则返回的cursor.getCount == 0;

           要想成功,要按照下面的写法:    

            where = MediaStore.Audio.Media.TITLE + " in("+TextUtils.join(",",list)+");

    args = null;

            根据要比较条件的列的值类型,上面红色字体部分需要按照如下规则编写,:

           (1)如果要比较的列的值是Integer型,则直接按照红色字体部分写就可以;

举例:假设要查询的列是A,要查询的值的范围是1,2,3则 条件是Where A in(1,2,3) 

           (2)如果要比较的列的值是String型,则需要写成下面这个样子:

             where = MediaStore.Audio.Media.TITLE + " in("+"\'"+TextUtils.join("\',\'",list)+"\'"+"); 

             或 where = MediaStore.Audio.Media.TITLE + " in("+"\""+TextUtils.join("\",\"",list)+"\""+");

举例:假设要查询的列是B,要查询的范围是A、B、C,则条件应该是 where B in('A','B','C')  或 where B in("A","B","C");



         

         

更多相关文章

  1. 分支和循环(二)(零基础学习C语言)
  2. android 使用Freetype 提取字模,并可转化bmp图
  3. android中创建有自身特色的字符串
  4. Android:Xmpp协议的简单分析
  5. android 设置状态栏颜色和字体颜色
  6. android中TextView分段显示不同颜色,字体,时间
  7. Android(安卓)8.1 来电默认全屏显示 如何修改
  8. Android通用布局对象
  9. Android(安卓)界面布局

随机推荐

  1. 让Android支持透明状态栏
  2. android:multiprocess
  3. Android studio导入Android studio项目出
  4. 【Android】Kill Service
  5. Android in Practice笔记第二章
  6. 设置Android app背景图片(Android studio
  7. 收集android的三个小tip
  8. 自动启动程序
  9. android 自定义主题样式
  10. Android阴影效果与CardView版本适配的细