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();