Yii使用具有IN条件的变量

时间:2014-01-10 16:31:21

标签: php mysql yii

我正在尝试使用我的模型将信息提取到页面中。问题是我需要使用变量在我的mysql上使用IN条件。

这是我目前使用的代码

$list_id = '1,3';
$clients = ListSubscriber::model()->findAll(array('condition'=>'list_id IN (:list_id)','params'=>array(':list_id'=>$list_id)));

我不一定知道$list_id中将存储多少个数字,因此需要变量与IN一起使用。

代码执行时没有错误,但似乎只返回第一个$list_id数的值,所以在这种情况下它只找到list_id = 1的用户。

感谢任何帮助。我发现了这个问题Yii addInCondition 但是他们使用的是静态值,但这并不能解决我的问题。

当我使用静态值时,代码会按预期执行结果。

2 个答案:

答案 0 :(得分:3)

您可以使用addInCondition:

$list_id = '1,3';
$criteria = new CDbCriteria();
$arr_list_id = explode(",",$list_id);
$criteria->addInCondition("list_id ", $arr_list_id );
$clients = ListSubscriber::model()->findAll($criteria);

答案 1 :(得分:1)

$list_ids = array(1,3);
$clients = ListSubscriber::model()->findAllByAttributes(array('list_id'=>$list_ids));