Yii 2.0 數(shù)據(jù)庫操作增刪改查詳解

1. 簡單查詢

[[one()]]: 根據(jù)查詢結(jié)果返回查詢的第一條記錄。

[[all()]]: 根據(jù)查詢結(jié)果返回所有記錄。

[[count()]]: 返回記錄的數(shù)量。

[[sum()]]: 返回指定列的總數(shù)。

[[average()]]: 返回指定列的平均值。

[[min()]]: 返回指定列的最小值。

[[max()]]: 返回指定列的最大值。

[[scalar()]]: 返回查詢結(jié)果的第一行中的第一列的值。

[[column()]]: 返回查詢結(jié)果中的第一列的值。

[[exists()]]: 返回一個值,該值指示查詢結(jié)果是否有數(shù)據(jù)。

[[where()]]: 添加查詢條件

[[with()]]: 該查詢應(yīng)執(zhí)行的關(guān)系列表。

[[indexBy()]]: 根據(jù)索引的列的名稱查詢結(jié)果。

[[asArray()]]: 以數(shù)組的形式返回每條記錄。

應(yīng)用實例:

Customer::find()->one();    此方法返回一條數(shù)據(jù);

Customer::find()->all();    此方法返回所有數(shù)據(jù);

Customer::find()->count();    此方法返回記錄的數(shù)量;

Customer::find()->average();    此方法返回指定列的平均值;

Customer::find()->min();    此方法返回指定列的最小值 ;

Customer::find()->max();    此方法返回指定列的最大值 ;

Customer::find()->scalar();    此方法返回值的第一行第一列的查詢結(jié)果;

Customer::find()->column();    此方法返回查詢結(jié)果中的第一列的值;

Customer::find()->exists();    此方法返回一個值指示是否包含查詢結(jié)果的數(shù)據(jù)行;
Customer::find()->asArray()->one();    以數(shù)組形式返回一條數(shù)據(jù);

Customer::find()->asArray()->all();    以數(shù)組形式返回所有數(shù)據(jù);
Customer::find()->where($condition)->asArray()->one();    根據(jù)條件以數(shù)組形式返回一條數(shù)據(jù);

Customer::find()->where($condition)->asArray()->all();    根據(jù)條件以數(shù)組形式返回所有數(shù)據(jù);
Customer::find()->where($condition)->asArray()->orderBy('id DESC')->all();    根據(jù)條件以數(shù)組形式返回所有數(shù)據(jù),并根據(jù)ID倒序;

2. 常用查詢:

// WHERE admin_id >= 10 LIMIT 0,10
User::find()->select('*')->where(['>=', 'admin_id', 10])->offset(0)->limit(10)->all()
// SELECT `id`, (SELECT COUNT(*) FROM `user`) AS `count` FROM `post`   
$subQuery = (new Query())->select('COUNT(*)')->from('user');    
$query = (new Query())->select(['id', 'count' => $subQuery])->from('post');
// SELECT DISTINCT `user_id` ... 
User::find()->select('user_id')->distinct();

3. 更新:

//update();
//runValidation boolen 是否通過validate()校驗字段 默認(rèn)為true 
//attributeNames array 需要更新的字段 
$model->update($runValidation , $attributeNames);  

//updateAll();
//update customer set status = 1 where status = 2
Customer::updateAll(['status' => 1], 'status = 2'); 

//update customer set status = 1 where status = 2 and uid = 1;
Customer::updateAll(['status' => 1], ['status'=> '2','uid'=>'1']);

4. 刪除:

$model = Customer::findOne($id);
$model->delete();

$model->deleteAll(['id'=>1]);

5. 查看執(zhí)行sql

//UserModel 
$query = UserModel::find()->where(['status'=>1]); 
echo $query->createCommand()->getRawSql();
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容