QGIS – Selecting More Features with ‘ILIKE’ and ‘IN’ Operators

qgisselect-by-attributeselect-by-expression

I would like to select more features with expression in a specific field, which contains the name of the attribute (IN operator is useful). Moreover, the name could not be exact, so the ILIKE operator is necessary.

How can I match these 2 operators in one expression?

For example, I need to select 2 city called 'Rome' and 'New York'.

"city" in ('Rome','New York') -> selected both
"city" in ('rom','new yor') -> not selected

Any suggestion to select in the second case in QGIS?

Best Answer

You can achieve this task using arrays.

  1. Create an array with the search themes AND the placeholders
  2. for each value of the array, find if the name column contains it or not, using ilike
  3. as the output of step 2 is an array of true/false values, check if this output contains at least 1 true result
array_contains(
    array_foreach( 
        ARRAY('%rom%','new yor%'),
        name ilike @element),
true)
Related Question