2015-11-07 44 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")