How to create a criteria condition for a multiple value text search i.e a "LIKE IN"

Comparing #3 with #4

Revision #4 was created by toph toph on Aug 3, 2014, 5:06:27 PM.

Added alternative solution using `mergeWith`

Content

[...]
[sql]

... WHERE ((((name LIKE '%ABC%') OR (name LIKE '%RET%')) OR (name LIKE '%Anything else%')) AND (type=1)) ...
~~~

For cases where this isn't possible,
another solution is to create another CDbCriteria instance to handle this specific condition and use CDbCriteria::addCondition() to[CDbCriteria::mergeWith()](http://www.yiiframework.com/doc/api/1.1/CDbCriteria#mergeWith-detail "CDbCriteria::mergeWith()") to combine the two CDbCriteria instances as follows (thanks to Peter Jk's comment).
 
 
 
```php 
$c1=new CDbCriteria; // original criteria
 
$c2=new CDbCriteria; // criteria for handling our search values
 
 
foreach($search_values as $txt){ 
 
$c2->compare('name',$txt,true,'OR');
 
}
 
 
$c1->mergeWith($c2); // Merge $c2 into $c1
 
 
```
 
 
You can also use [CDbCriteria::addCondition()](http://www.yiiframework.com/doc/api/1.1/CDbCriteria#addCondition-detail "CDbCriteria::addCondition()") to manually
add it to the original criteria as follows.:
[...]
```