我正在使用查詢方法,但我不知道如何在查詢方法中傳遞多個選擇參數。如何在「查詢」方法中傳遞兩個或多個選擇參數
我的查詢方法應該返回的結果與此相同的SQL語句:
SELECT _id FROM CONATCT_TAGS WHERE TAG1='tagname' OR TAG2='tagname' OR TAG3='tagname' OR TAG4='tagname' OR TAG5='tagname';
我正在使用查詢方法,但我不知道如何在查詢方法中傳遞多個選擇參數。如何在「查詢」方法中傳遞兩個或多個選擇參數
我的查詢方法應該返回的結果與此相同的SQL語句:
SELECT _id FROM CONATCT_TAGS WHERE TAG1='tagname' OR TAG2='tagname' OR TAG3='tagname' OR TAG4='tagname' OR TAG5='tagname';
嘗試類似的東西..
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將 返回給定表的所有行。
如果你想使用內置的優化在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的解決方案不同的是,你讓數據庫連接器決定如何解釋提交的數據。從安全角度來看這更加有趣。
您可以使用它像
字符串strSelection = android.provider.CallLog.Calls.TYPE + 「=」 + CallLog.Calls.MISSED_TYPE + 「或」 + android.provider.CallLog.Calls.TYPE + 「=」+ CallLog.Calls.INCOMING_TYPE;
你想使用這個解決方案,因爲正確使用`args`參數來避免SQL注入 – philipp 2012-04-04 18:43:11