2011-01-21 64 views

回答

9

嘗試類似的東西..

SQLiteDatabase db = YourDatabaseHelper.getReadableDatabase(); 
String TABLE = "CONTACT_TAGS"; 
String[] FIELDS = { "_id" }; 
String WHERE = "TAG1='tagname' OR TAG2='tagname' OR TAG3='tagname' OR TAG4='tagname' OR TAG5='tagname' "; 
// Execute 
cursor = db.query(TABLE, FIELDS, WHERE, null, null, null, null); 

如果你讀了Cursor.query()方法的文檔,你找到的定義對於selection如下:

選擇:過濾器declari ng返回哪些行,格式化爲SQL WHERE子句(不包括WHERE本身)的 。傳遞null將 返回給定表的所有行。

45

如果你想使用內置的優化在Android SQLite的連接,你可以做這樣的事情,而不是:

String table = "CONTACT_TAGS"; 
String[] columns = {"_id"}; 
String where = "TAG1=? OR TAG2=? OR TAG3=? OR TAG4=? OR TAG5=?"; 
String[] args = {"tagname", "tagname", "tagname", "tagname", "tagname"}; 

SQLiteDatabase db = myDatabaseHelper.getReadableDatabase(); 
Cursor cursor = db.query(table, columns, where, args, null, null, null); 

從@ raultum的解決方案不同的是,你讓數據庫連接器決定如何解釋提交的數據。從安全角度來看這更加有趣。

+2

你想使用這個解決方案,因爲正確使用`args`參數來避免SQL注入 – philipp 2012-04-04 18:43:11

2

您可以使用它像

字符串strSelection = android.provider.CallLog.Calls.TYPE + 「=」 + CallLog.Calls.MISSED_TYPE + 「或」 + android.provider.CallLog.Calls.TYPE + 「=」+ CallLog.Calls.INCOMING_TYPE;

相關問題