我有一張桌子,我需要拉出所有對應特定圖案的ID(所有主鍵)。我需要使用Yii中的模型類來完成這些工作,並將它們保存到數組中以供進一步處理。在Yii中選擇記錄ID
-1
A
回答
1
下面是一個方法來做你看起來像你問。在這個例子中,模型是「People」,模式是job_title LIKE "%developer%"
- 後處理完成後放入數組中。如果您可以使用對象,則跳過後處理。
$criteria=new CDbCriteria;
$criteria->select = 'people_id';
$criteria->condition='job_title LIKE :txt';
$criteria->params=array(':txt'=>'%developer%');
$people=People::model()->findAll($criteria);
// save to array:
$people_a = array();
foreach ($people as $person) {
$people_a[] = $person['people_id'];
}
稍微更有效的方式來做到這一點(如果你需要得到的結果是一個數組),可讓您使用CommandBuilder的和現有的車型是:
$model = People::model();
$model->dbCriteria->condition .= 'job_title LIKE :txt';
$model->dbCriteria->select = 'people_id';
$model->dbCriteria->params = array(':txt'=>'%developer%');
$people = $model->getCommandBuilder()
->createFindCommand($model->tableSchema, $model->dbCriteria)
->queryAll();
$people_a = array();
array_walk($people, function ($value) use (& $people_a) {
$people_a[] = $value['people_id'];
});
(匿名函數以上假設PHP 5.3)
0
沒有辦法只選擇具有ActiveRecord模式的ID。你可以使用CCommandBuilder來建立sql查詢。
相關問題
- 1. 選擇記錄ID
- 2. 選擇ID後記錄
- 3. 在組合框中選擇記錄ID時在報告中顯示記錄
- 4. 選擇記錄不在其他選擇記錄中
- 5. MySQL的選擇最近的記錄ID
- 6. Linq2Sql通過多個ID選擇記錄?
- 7. 選擇記錄取決於兩個ID
- 8. 選擇標記ID
- 9. 選擇記錄其中id是集合ID之一
- 10. 選擇記錄
- 11. 選擇記錄
- 12. 選擇記錄
- 13. 選擇記錄
- 14. 選擇記錄
- 15. 選擇記錄
- 16. 選擇記錄WHERE ID沒有在表中從MySQL
- 17. 選擇包含在另一個表中的ID的記錄
- 18. 在id!= 0的MySQL數據庫中選擇記錄
- 19. 如何選擇在MySQL中具有最大ID的記錄?
- 20. 選擇記錄,其中ID是在其他表和狀態= 1
- 21. 選擇ID不在多個表中出現的記錄
- 22. 如何在SQLite中選擇帶有訂單ID的記錄
- 23. 在MYSQL選擇 - 選擇所有記錄
- 24. 如何在yii createCommand中獲得id新記錄?
- 25. 從列中選擇記錄
- 26. YIi活動記錄選擇固定字段
- 27. SQL選擇記錄
- 28. SQL選擇記錄
- 29. 選擇DISTINCT記錄
- 30. SQL選擇記錄