Php Yii2,使用数组输入创建查询
我在yii2中有一个查询:Php Yii2,使用数组输入创建查询,php,yii2,Php,Yii2,我在yii2中有一个查询: $models = Company::find()->where('name like :q', ['q'=>/* Array here */])->all(); 您可以看到我有一个q元素数组,我想添加到查询中。如何编写查询,以便它检查数组大小未知的一个或多个q元素?根据:,IN条件可用于使用以下模式指定多种可能性: $models = Company::find()->where(['q'=>$qArray])->all();
$models = Company::find()->where('name like :q', ['q'=>/* Array here */])->all();
您可以看到我有一个q元素数组,我想添加到查询中。如何编写查询,以便它检查数组大小未知的一个或多个q元素?根据:,IN条件可用于使用以下模式指定多种可能性:
$models = Company::find()->where(['q'=>$qArray])->all();
这将生成如下SQL语句:
SELECT * FROM `company` WHERE q IN ('a','b'....);
SELECT *
FROM table_name
WHERE field_name LIKE '%one%'
OR field_name LIKE '%two%'
OR field_name LIKE '%three%'
假设$qArray变量的内容是数组'a','b',…,根据:,IN条件可用于使用类似以下模式的方式指定多种可能性:
$models = Company::find()->where(['q'=>$qArray])->all();
这将生成如下SQL语句:
SELECT * FROM `company` WHERE q IN ('a','b'....);
SELECT *
FROM table_name
WHERE field_name LIKE '%one%'
OR field_name LIKE '%two%'
OR field_name LIKE '%three%'
假设$qArray变量的内容是数组'a','b',…如果您确实需要SQL语句的类似条件,而不是在第二个答案中:
$query = Company::find();
foreach($words as $word){
$query->orWhere(['like','q', $word]);
}
$models = $query->all();
这将生成SQL语句,如:
SELECT * FROM `company` WHERE q IN ('a','b'....);
SELECT *
FROM table_name
WHERE field_name LIKE '%one%'
OR field_name LIKE '%two%'
OR field_name LIKE '%three%'
如果您确实需要SQL语句的类似条件,而不是在第二个答案中:
$query = Company::find();
foreach($words as $word){
$query->orWhere(['like','q', $word]);
}
$models = $query->all();
这将生成SQL语句,如:
SELECT * FROM `company` WHERE q IN ('a','b'....);
SELECT *
FROM table_name
WHERE field_name LIKE '%one%'
OR field_name LIKE '%two%'
OR field_name LIKE '%three%'
这是一个我从未想过的伟大解决方案。这是一个我从未想过的伟大解决方案。