I am using query method, but I don't no how to pass more than one selection argument in query method.
My query method should return result as same as this sql statement :
SELECT _id FROM CONATCT_TAGS WHERE TAG1='tagname' OR TAG2='tagname' OR TAG3='tagname' OR TAG4='tagname' OR TAG5='tagname';
If you want to use the built-in optimization in the Android SQLite connection you could do something like this instead:
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);
The difference from @raultum's solution is that you let the database connector decide how to interpret the submitted data. This is extra interesting from a security perspective.
Try something like that..
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);
If you read the documentation of the Cursor.query() method you find the definition for selection
as follows:
selection: A filter declaring which rows to return, formatted as an SQL WHERE clause (excluding the WHERE itself). Passing null will return all rows for the given table.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With