Android内容提供商查询IN子句

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

我目前正在使用

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

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

我的光标值为0.

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

帮帮我?

解决方法

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

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

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

猜你在找的Android相关文章