如何为多个where值构造sql查询

时间:2014-03-25 10:14:54

标签: android android-sqlite

我需要构建一个查询。

以下是我的数据库表:

ID          Name
20          ABC1
30          ABC2
40          ABC3
60          ABC4
70          ABC5
80          ABC6

我需要获取ID为30,40,70的记录。

我写了一个如下查询,但它给了我错误。

String query =  "SELECT * FROM tableName WHERE ID = '30','40','70' "

上面的查询我传递给下面的方法:

db.rawQuery(query ,null);

但它抛出以下错误:

I/SqliteDatabaseCpp(19091): sqlite returned: error code = 1, msg = near ",": syntax error, db=xxx

请让我知道如何解决此问题。

3 个答案:

答案 0 :(得分:2)

您可以使用常规SQL语法:

String query =  "SELECT * FROM tableName WHERE ID = '30' OR ID = '40' OR ID = '70' "

顺便说一下,你可以用方便的方式使用:

Exapmle

答案 1 :(得分:2)

您需要改为编写WHERE ID IN ('30', '40', '70')

另外,我强烈建议您使用db.query而不是db.rawQuery来避免可能的sql注入攻击或一般字符串转义错误。

答案 2 :(得分:0)

String query = "SELECT * FROM tableName WHERE ID in ('30','40','70')"