【问题标题】:Yii using a variable with an IN conditionYii 使用带有 IN 条件的变量
【发布时间】:2014-01-10 16:31:20
【问题描述】:

我正在尝试使用我的模型将信息提取到页面中。问题是我需要使用变量在我的 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 但是他们使用的是静态值,这并不能解决我的问题。

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

【问题讨论】:

标签: php mysql yii


【解决方案1】:

你可以使用 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);

【讨论】:

  • @lascort 这是给我的评论吗?
  • 不,我只是在备份您的解决方案!
【解决方案2】:
$list_ids = array(1,3);
$clients = ListSubscriber::model()->findAllByAttributes(array('list_id'=>$list_ids));

【讨论】:

  • 非常感谢您的回答 Voodoo417,我测试了它是有效的,但是我选择 Kumar_v 的答案仅仅是因为 Lascort 同意他的解决方案。
猜你喜欢
  • 2020-06-30
  • 2016-05-07
  • 1970-01-01
  • 2011-10-05
  • 1970-01-01
  • 1970-01-01
  • 2016-02-04
  • 2021-02-25
  • 2019-08-04
相关资源
最近更新 更多