0
我试图获得匹配IN子句中所有值的查询。这就是我现在所拥有的在UsersSearch.php模型:Yii2匹配IN子句中的所有值
$categoryIdsMatching = UsersCategoriesAssn::find()
->select('userID')
->distinct(true)
->joinWith('userCategory')
->andWhere(['IN', 'usersCategories.id', $this->catNameSearch])
->column();
$query->andWhere(['userID'=>$categoryIdsMatching]);
但它变得匹配值的至少一个记录...我怎么能设置andWhere子句,匹配,而不是一些人的所有值?
这就是使用[MySQLs IN Operator](http://dev.mysql.com/doc/refman/5.7/en/comparison-operators.html#function_in)时的原理。除了必须匹配所有值的一个值听起来不正确。你为什么不比较一个价值(如果他们都一样)?请说明你的用例。 – abi
谢谢你的回答@abi。我有一个多选择的下拉列表,我想要获得匹配所有选定值的记录 – farrusete
因此,您有多个类别ID,并且想要查找完全属于这些类别的所有用户,对不对?您可以尝试使用简单的'='运算符对每个类别进行连接,然后对具有NULL值的结果进行整理。 – abi