OR operator in Drupal View Filters

Vodde picture Vodde · Aug 27, 2009 · Viewed 18.3k times · Source

I need to implement an OR operator between some filters in a Drupal View. By default, Drupal AND's every filter together.

By using

hook_views_query_alter(&$view, &$query)

I can access the query ( var $query ) , and I can change either :

$query->where[0]['type'] 

to 'OR', or

$query->group_operator 

to 'OR'

The problem is however, that I do not need OR's everywhere. I've tried changing both of them to OR seperately, and it doesn't yield the desired result.

It seems changing those values, puts OR's everywhere, while I need => ( filter 1 AND filter 2 ) OR ( filter 3 ), so just 1 OR.

I could just check the Query of the View, copy it, modify it, and run it through db_query, but that's just dirty ..

Any suggestions ?

Thx in advance.

Answer

davidfurber picture davidfurber · Dec 15, 2011

If you are using Views 3 / Drupal 7 and looking for the answer to this question, it is baked right into Views. Where it says "add" next to filters, click the dropdown, then click "and/or; rearrange". It should be obvious from there.