How to fetch entries based on contents of several custom fields?
No, but this is possible with a few lines of plugin code. You just need to create a DbCommand object from your criteria model and add your WHERE conditions with a OR operator.

Add this function to your Template variable class and you can get the entries from your templates with a single query.

public function getEntriesWithVars($vars)
{
    $criteria = craft()-&gt;elements-&gt;getCriteria(ElementType::Entry);
    $criteria-&gt;section = 'sectionName';
    $criteria-&gt;limit = null;

    $query = craft()-&gt;elements-&gt;buildElementsQuery($criteria);

    $conditions = array(
        'or',
        array('in', 'field_customField1', $vars),
        array('in', 'field_customField2', $vars)
    );

    $query-&gt;andWhere($conditions);

    $results = $query-&gt;queryAll();

    return EntryModel::populateModels($results);
}




{% set vars = ['foo', 'bar'] %}
{% set entries = craft.myPlugin.getEntriesWithVars(vars) %}