Android sqlite创建包含OR的WHERE子句

时间:2015-11-07 23:01:51

标签: android

我知道如何使用以下方法创建单个where子句:

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

但是如何在其中包含OR子句?首先,我想返回列值等于1或2的数据。

此外,使用query()优于rawQuery()是否有任何好处?

提前致谢,Dan。

2 个答案:

答案 0 :(得分:1)

您可以使用 来指示column2的值

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

query是我们的封装而不直接编写sql语句,它可以减少手写错误,但它的效率可能比使用rawQuery慢, rawQuery让我们使用sql并传递一些参数来替换最后一个sql的,但它可能会导致sql注入,但是如果你能保证sql只能由你自己执行,你需要不用担心。

答案 1 :(得分:0)

转变我们的rawQuery函数对我来说是最简单的。我可以使用:rawQuery("SELECT SUM(column1) FROM table WHERE column2 = 2 OR column2 = 4")

插入精确的SQL