Reputation: 4578
Here's my current sqlite code:
Cursor c = sqlDatabase.rawQuery("select docid as _id, recipeID from " + TABLE_RECIPE_NAME +
" where " + KEY_ownerID + " = ? ", new String[] { ownerID});
It works fine, but when I tried adding multiple where to something like this:
Cursor c = sqlDatabase.rawQuery("select docid as _id, recipeID from " + TABLE_RECIPE_NAME +
" where " + KEY_ownerID + " = ?, " + KEY_partnerID + " = ?, " + KEY_advertiserID + " = ?, " + KEY_chefID + " = ?", new String[] { ownerID, partnerID, advertiserID, chefID });
It returns an error. So how do I deal with multiple ?
Upvotes: 16
Views: 37318
Reputation: 29199
change query to:
Cursor c = sqlDatabase.rawQuery("select docid as _id, recipeID from " +
TABLE_RECIPE_NAME + " where " + KEY_ownerID + " = ? AND " + KEY_partnerID +
" = ? AND " + KEY_advertiserID + " = ? AND " + KEY_chefID + " = ?",
new String[] { ownerID, partnerID, advertiserID, chefID });
Upvotes: 47
Reputation: 1922
You are doing correct but just need to use AND or OR keyword between each where condition as per your requirement. So try using this once.
Upvotes: 6
Reputation: 512706
Use AND
and OR
for multiple WHERE
clauses. Use parentheses if logical grouping or order is needed.
SELECT *
FROM employees
WHERE (last_name = 'Smith' AND first_name = 'Jane') OR (employee_id = 1);
Note
Upvotes: 3
Reputation: 67296
Probably you have to use AND
. You want a query that should return the value in Cursor populated with comparing multiple values. So, you just need to use AND
. Instead of using a comma(,)
. Above answer seems correct but it just lacks the explanation.
Upvotes: 2