如何查询整数数组

时间:2015-07-17 02:20:59

标签: android sql android-sqlite

我想查询:

select * from table where field1 in(1,2,3);

field1 integer类型。 但是对于字段类型是String,那么它将是:

select * from table where field1 in('1','2','3');

但在Android中,他们都将selectionArs用作String []。

String[] filter = new String("1", "2", "3");
Cursor altoCursor = mContentResolver.query(
                uri, projection,
                "field1 IN (?,?,?)" +
                filter, null);

与字段类型String有什么不同,比如说field1现在是String的类型。查询看起来是一样的,它如何知道String []中的“1”是用于Integer还是String

String[] filter = new String("1", "2", "3");
Cursor altoCursor = mContentResolver.query(
                uri, projection,
                "field1 IN (?,?,?)" +
                filter, null);

在这里感到困惑,感谢任何人的帮助!

1 个答案:

答案 0 :(得分:0)

通常,您查询的列的数据类型将定义为Integer或String。

如果要传递字符串或整数,数据库引擎将无法实现。此时此刻 如果在没有引号的字符串列中放置整数值,则查询将传递给SQL引擎,它将通过错误。

  1. 检查您要查询的列
  2. 如果是字符串,则使用引号
  3. 对其进行编码
  4. 如果它是整数,那么您可以按照逗号分隔值
  5. 传递值

    要测试你的字符串是否为整数,你可以使用类似的东西 if(x是int)

    但在这种情况下,Android足够聪明,可以自己编写代码,我猜是