回答
你可以把你的數組作爲值的特定屬性,像這樣(沒有測試):
$model=new User();
$result=$model->findAllByAttributes(array('UserId'=>array(6,7,8,9)));
爲什麼新用戶()?在某些方面,它優於User :: model()嗎? – 2012-12-05 14:34:36
嗨鮑勃,用戶是受保護的模型的名稱/ models/user.php – 2012-12-06 09:24:01
我認爲鮑勃問爲什麼在兩行而不是一個'User :: model() - > findAllByAttributes(array('UserId' =>數組(6,7,8,9)));'? – 2013-07-15 19:46:25
您可以使用CDbCriteria
聲明:
$criteria = new CDbCriteria();
$criteria->addInCondition('userId', array(6,7,8,9));
$result = User::model()->findAll($criteria);
有沒有類似[tag:yii2]的解決方案? – SaidbakR 2015-01-12 02:14:42
我還在用這種方式:
public function getInterval($data_start, $data_stop){
$criteria = new CDbCriteria;
$criteria->condition = "date >= '$data_start' AND date <= '$data_stop'";
return $criteria;
}
$model = Object::model()->findAll(getInterval('2014-06-01','2014-06-30');
是不是暴露給SQL注入? – Justinas 2014-07-08 12:20:52
很好的問題。我會查。 – 2014-07-08 13:05:54
如果你希望得到您的查詢速度更快,使用命令生成器:
Yii::app()->db->createCommand()
->select('*')
->from('user')
->where(array('in', 'UserId', array(6, 7, 8, 9)))
->queryAll();
要通過的CActiveRecord得到它,使用findAllByAttributes
User::model()
->findAllByAttributes(array(
'UserId' => array(6,7,8,9)
));
但它會得到所有用戶的完整的對象關聯關係,因此速度較慢。
'where(array('in','column_name',array())'救了我,歡呼! – Mave 2015-05-01 09:29:11
在yii中有一個叫findAllBySql
的函數來運行sql查詢並獲取輸出。
$sql="SELECT * FROM `User` WHERE `UserId` IN (6, 7, 8, 9)";//Your Sql query
$value=User::model()->findAllBySql($sql);// "User" is the model belongs to the table 'User'
的「$值」將一個數組中返回結果。要獲取這些值,您可以使用以下方法。
foreach($value as $val){
echo $val->UserId;
}
(或)
var index=0;
echo $val[$index]->UserId;
您可以使用在國內外之間的語句直通CDbCriteria:
$criteria = new CDbCriteria();
$criteria->addInCondition("id", array(6,7,8,9));
$criteria->addBetweenCondition('id', '10', '20', 'OR');
$result = User::model()->findAll($criteria);
這將導致SQL查詢這樣的:
SELECT *
FROM `User`
WHERE `id`
IN (6, 7, 8, 9)
OR `id` BETWEEN 10 AND 20
請注意第4個參數或在addBetweenCondition()方法;錯過它,將應用默認的和將該條件連接到WHERE查詢的其餘部分。
P.S.嚴格地說,那些addBetweenCondition()
和addInCondition()
方法應該添加到現有條件。所以,你可能需要先設定一個標準的初始條件是這樣的:
$criteria->condition = '1=1';
要麼你可以使用addInCondition,或者您也可以使用比較方法。
$criteria = new CDbCriteria();
$criteria->compare('UserId',array(6,7,8,9));
$userDataObj = User::model()->findAll($criteria);
- 1. 如何在yii活動記錄的with子句中添加條件?
- 2. 如何在Yii中使用CDbCriteria中的IN子句和CActiveDataProvider?
- 3. 使用BETWEEN子句
- 4. 如何在活動記錄POSTGRES中使用BETWEEN搜索字符串數組,
- 5. JPA JPQL IN子句:如何在JPA中使用IN子句?
- 6. 在Rails 3活動記錄查詢中使用WHERE子句
- 7. 在活動記錄訂單子句中使用mysql函數
- 8. IN子句使用活動記錄查詢庫來創建整數列表
- 9. 使用活動記錄在Yii中調用數據庫視圖
- 10. 在SQL CASE中使用BETWEEN where子句
- 11. 如何在Slick中使用IN子句?
- 12. 如何在iBATIS中使用IN子句?
- 13. 如何在IN子句中使用CTE?
- 14. 如何在JPA中使用IN子句?
- 15. 如何在JPQL中使用in子句?
- 16. yii中有什麼活動記錄
- 17. 左連接在活動記錄中不顯示空記錄Yii
- 18. 如何使用IN子句
- 19. 如何在Yii中創建條件活動記錄關係
- 20. 如何在codeigniter活動記錄中使用select插入記錄
- 21. DATEDIFF IN CODEIGNITER中的活動記錄
- 22. 如何在mysql中使用獨佔BETWEEN子句?
- 23. 如何在Kohana ORM中使用BETWEEN子句
- 24. Yii模型與組合表使用關係在活動記錄
- 25. 使用codeigniter活動記錄的多個子句
- 26. SQL:動態哪裏子句使用IN語句死於NULL值的記錄
- 27. 如何使用grails.gorm.DetachedCriteria中的in子句?
- 28. yii活動記錄加入模型
- 29. Yii 2活動記錄hasMany with LeftJoin
- 30. Yii刪除多個活動記錄
抱歉沒有得到您的問題......? – Pushpendra 2011-05-20 06:02:44
他正在尋找Yii中的CActivRecord語法來創建像本示例一樣的SQL語句。 – 2011-05-20 11:40:34
考慮接受你的問題的答案! – Justinas 2016-09-02 11:32:19