我需要构建一个查询。
以下是我的数据库表:
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
请让我知道如何解决此问题。
答案 0 :(得分:2)
您可以使用常规SQL语法:
String query = "SELECT * FROM tableName WHERE ID = '30' OR ID = '40' OR ID = '70' "
顺便说一下,你可以用方便的方式使用:
答案 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')"