I recently adapted my iPhone Application to use core data; after some research I have found that NSPredicate seems like the best way to handle my database queries. In particular, my queries will be based on 4 separate attributes. First, I need to query the database for all entities that have a specific county name. If I search for all entities with the county property "Amador" I also need the Predicate to return entities which may have "Amador and Butte" as the county property. Second, I need to have the Predicate only return those entities which passed the county condition which also pass a second condition: The commodity1 property must also contain "gold" somewhere in its string. Thirdly, if the commodity1 property contains the string "none", then the predicate must search through commodity2 for the string "Gold" . If it finds "none" in that attribute, then it must do the same for the commodity3 property. I could probably structure my database so that I wouldn't have to make such complex queries, but for now I need a solution for this.