Changes
Title
unchanged
How to create a criteria condition for a multiple value text search i.e a "LIKE IN"
Category
unchanged
How-tos
Yii version
unchanged
Tags
unchanged
search, like, in, cdbcriteria
Content
changed
[...]
For a scenario where only the name field above is the only condition a single CDbCriteria instance will do i.e
```php
$c1= = new CDbCriteria;
foreach
($search_values as $txt)
{
$c1->compare('name',
$txt,
true,
'OR');
}
```[...]
~~~
For cases where this isn't possible, anothe
r 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
.:
```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->addCondition($c2->condition);
$c1->params
+=
$c2->params; // Add the params for $c2 into $c1
```