Yii框架在where子句中

时间:2013-09-24 10:40:42

标签: php yii

我正在尝试使用where in condition

获取结果
$email = 'test@gmail.com';                   // This works
$email = 'test@gmail.com,test1@gmail.com';   // This fails

$users = User::model()->findAllByAttributes(array('email'=>array($email)));
print_r($users);

我错了。

3 个答案:

答案 0 :(得分:1)

这取决于你想要达到的目标。 如果要查找具有匹配地址的所有用户,可以使用explode将逗号分隔列表转换为数组:

$emails = explode(',', $email);
$users = User::model()->findAllByAttributes(array('email'=>$emails));

答案 1 :(得分:1)

对此类情况使用addInCondition

$emails = 'test@gmail.com,test1@gmail.com';
$emailsArray = explode(',', $emails);
$criteria = new CDbCriteria();
$criteria->addInCondition("email", $emailsArray);
$users = User::model()->findAll($criteria);

答案 2 :(得分:0)

你可以这样试试......

$email1="xyz@gmail.com";
$email2="abc@gmail.com";
$users = User::model()->findAllByAttributes(array('email'=>array($email1,$email2)));
print_r($users);

如果您想查看多封电子邮件,请使用CDbcriteria ..

addInCondition()这是最好的方式......

for ex ..

$email = 'test@gmail.com,test1@gmail.com'; 
$emails = explode(',',$email);
$criteria->addInCondition('email',$emails);
$user=User::model()->findAll(array($criteria)));
print_r($users);

实际上没有尝试过这段代码,但希望它可以帮助你......