我正在尝试以下查询:
return mDb.query(DATABASE_TABLE1, asColumnsToReturn,
"NotificationDateFor like ?
OR FriendsName like ?" +"
AND TypeNotification <> 'Event'
AND RadioType <> '3'
ORDER BY DateToNotify ASC",
new String[] { value, value }, null,null, null);
但是我观察到在这种情况下对应于:
的部分AND TypeNotification <> 'Event' AND RadioType <> '3'
被忽视了。可能是什么原因?
答案 0 :(得分:2)
从documentation中可以看出,AND的优先级高于OR,因此NotificationDateFor
匹配就足以选择一行:
sqlite> select 1 or 0 and 0 and 0;
1
你必须使用括号:
(NotificationDateFor LIKE ? OR FriendsName LIKE ?) AND TypeNotification <> 'Event' AND RadioType <> '3'