我想在Active记录中写一个Follow Query.
SELECT *
FROM `User`
WHERE `UserId`
IN ( 6, 7, 8, 9 ) ;
Run Code Online (Sandbox Code Playgroud)
谢谢
小智 31
你可以使用CDbCriteria声明:
$criteria = new CDbCriteria();
$criteria->addInCondition('userId', array(6,7,8,9));
$result = User::model()->findAll($criteria);
Run Code Online (Sandbox Code Playgroud)
The*_*ndr 10
您可以将数组作为特定属性的值,如下所示(未经测试):
$model=new User();
$result=$model->findAllByAttributes(array('UserId'=>array(6,7,8,9)));
Run Code Online (Sandbox Code Playgroud)
如果要更快地获取查询,请使用Command Builder:
Yii::app()->db->createCommand()
->select('*')
->from('user')
->where(array('in', 'UserId', array(6, 7, 8, 9)))
->queryAll();
Run Code Online (Sandbox Code Playgroud)
要通过CActiveRecord获取它,请使用 findAllByAttributes
User::model()
->findAllByAttributes(array(
'UserId' => array(6,7,8,9)
));
Run Code Online (Sandbox Code Playgroud)
但是它将获得具有所有相关关系的User的完整对象,因此它更慢.