我正在尝试使用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);
我错了。
答案 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);
实际上没有尝试过这段代码,但希望它可以帮助你......