Android内容提供商查询IN子句

前端之家收集整理的这篇文章主要介绍了Android内容提供商查询IN子句前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
可以为内容提供商使用IN子句吗?

我目前正在使用

cursor = contentResolver.query(CONTENT_URI,PROJECTION,"field IN (?)",new String[] { argsBuilder.toString() },null);

如果我删除(?),只是使用?我收到一个错误.

我的光标值为0.

如果我手动输入并在sqlite3中执行查询,它可以工作.

帮帮我?

解决方法

使用IN运算符时,需要有一个?用您在selectionArgs数组中提供的每个参数以逗号分隔.例如.:
String[] selectionArgs = {"red","black"};
String selection = "color IN (?,?)";

以下选择正确的计数和适当的参数:

int argcount = 2; // number of IN arguments
String[] args = new String[]{ 1,2 };
StringBuilder inList = new StringBuilder(argcount * 2);
for (int i = 0; i < argcount; i++) { 
    if(i > 0) {
        inList.append(",");
    }
    inList.append("?"); 
}
cursor = contentResolver.query(
   CONTENT_URI,"field IN (" + inList.toString() + ")",args,null);

猜你在找的Android相关文章