2015-11-07 45 views
0

我知道如何使用,以创建一个单一的where子句:的Android SQLite的创建WHERE子句包括OR

db.query("table", 
    new String[] {"SUM(column1)"}, 
    "column2 = ?", 
    new String[] {"1"}, null, null, null); 

但是我怎么包括该or子句?主要是,我想返回列值等于1或2的数据。

另外,使用query()而不是rawQuery()有什么好处?

在此先感谢Dan。

+2

http://stackoverflow.com/a/15594770 –

+0

谢谢,这帮助我找到解决方案 – dantan04

回答

1

可以在使用指示列2的值

db.query("table", 
new String[] {"SUM(column1)"}, 
"column2 in(?,?)", 
new String[] {"1","2"}, null, null, null); 

query是一个封装对我们没有直接写SQL语句,它可以减少手写错误,但它的效率可能慢于使用rawQueryrawQuery让我们使用sql并传递一些参数来替换?最后一个sql的,但它可能会导致sql注入,但是如果您可以承诺sql将由您自己执行,您不需要担心它。

+1

感谢您的详细信息。我决定使用rawQuery,因为对我来说效率更高。我只需要做的就是:'rawQuery(“SELECT SUM(column1)FROM table WHERE column2 = 2 OR column2 = 4”)'谢谢 – dantan04

0

打开我们的rawQuery函数对我来说是最简单的。我可以插入确切的SQL使用:rawQuery("SELECT SUM(column1) FROM table WHERE column2 = 2 OR column2 = 4")