Mysql 从表中选择,其中的值来自select2和多个选择

Mysql 从表中选择,其中的值来自select2和多个选择,mysql,yii2,Mysql,Yii2,我有多个选择2,接近10。所以当用户使用搜索表单进行搜索时,我传递搜索参数。现在我的问题是他可以选择全部或者他只能选择2 1或2。那么我如何用这个从表中搜索 如果一个参数返回空值,我无法搜索,因为它会给我空的sql结果。我在yii2中这样做,但我只需要这里的逻辑,而不是yii2中想要的。我会改做yii2 $employee=EmpDetails::find()->where([ 'designation_id'=>$designation, 'process_id'=>$pro

我有多个选择2,接近10。所以当用户使用搜索表单进行搜索时,我传递搜索参数。现在我的问题是他可以选择全部或者他只能选择2 1或2。那么我如何用这个从表中搜索

如果一个参数返回空值,我无法搜索,因为它会给我空的sql结果。我在yii2中这样做,但我只需要这里的逻辑,而不是yii2中想要的。我会改做yii2

$employee=EmpDetails::find()->where([
'designation_id'=>$designation,
'process_id'=>$process,
'state'=>$state
 ])->asArray()->all();

在这里,
部门
过程
状态
是数组。如果其中一个值为空,那么如果没有一个值为空,则该查询将返回空结果。

我将为那些给我-1个代表但不理解该问题的人发布我自己的答案

$query=EmpDetails::find() 
->andFilterWhere(['city'=>$city])
->andFilterWhere(['state'=>$state])
->andFilterWhere(['department'=>$department])
->asArray()
->all();
此方法
和filterwhere
将删除空查询操作数。
这里是
$city
和其他数组

请添加一些代码来发布您的研究/努力使用
条件在所有搜索条件之间切换我没有写任何东西。这就是我问的原因。我在这里需要sql逻辑。我尝试过,但我写的都是错误的。我的问题是select2是多选因此,每个select2都可以返回值数组。