通用:
1
2
|
use yii\db\Query; $query = new Query(); |
查询:
Query:
1
2
3
4
5
|
$rows = ( new \yii\db\Query()) ->select([ 'code' , 'name' , 'population' ]) ->from( 'country' ) ->limit(10) ->all(); |
Select:
1
2
3
4
5
|
$data = $query ->select([ 'code' , 'name' ])->from( 'country' )->all(); // 调用 yii\db\Query::addSelect() 方法来选取附加字段 $data = $query ->select([ 'code' , 'name' ]) ->addSelect([ 'population' ])->all(); |
From:
1
2
3
|
$query ->from( 'country' ); $query ->from([ 'public.country c' ]); $query ->from( 'public.country c' ); |
Where:
字符串格式,例如:'status=1'
哈希格式,例如: ['status' => 1, 'type' => 2]
操作符格式,例如:['like', 'name', 'test']
1
2
3
|
andFilterWhere() orFilterWhere() |
Active Record (活动记录,以下简称AR)提供了一个面向对象的接口, 用以访问数据库中的数据。一个 AR 类关联一张数据表, 每个 AR 对象对应表中的一行,对象的属性(即 AR 的特性Attribute)映射到数据行的对应列。 一条活动记录(AR对象)对应数据表的一行,AR对象的属性则映射该行的相应列。
这里的增删改都会用到AR对象进行映射操作。
增加
1
2
|
$country ->name = 'UK' ; $country ->save(); |
修改
1
2
3
|
$country = Customer::findOne( $id ); $country ->email = 'UK' ; $country ->save(); // 等同于 $country->update(); |
删除
1
2
|
$country = Country::findOne( $id ); $country -> delete (); |
其他
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
User::find()->all(); //返回所有用户数据; User::findOne( $id ); //返回 主键 id=1 的一条数据; User::find()->where([ 'name' => 'ttt' ])->one(); //返回 ['name' => 'ttt'] 的一条数据; User::find()->where([ 'name' => 'ttt' ])->all(); //返回 ['name' => 'ttt'] 的所有数据; User::findBySql( 'SELECT * FROM user' )->all(); //用 sql 语句查询 user 表里面的所有数据; User::findBySql( 'SELECT * FROM user' )->one(); //此方法是用 sql 语句查询 user 表里面的一条数据; User::find()->andWhere([ 'sex' => '女' , 'age' => '18' ])-> count ( 'id' ); //统计符合条件的总条数; User::find()->one(); //返回一条数据; User::find()->all(); //返回所有数据; User::find()-> count (); //返回记录的数量; User::find()->average(); //返回指定列的平均值; User::find()->min(); //返回指定列的最小值 ; User::find()->max(); //返回指定列的最大值 ; User::find()->scalar(); //返回值的第一行第一列的查询结果; User::find()->column(); //返回查询结果中的第一列的值; User::find()->exists(); //返回一个值指示是否包含查询结果的数据行; |
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:http://www.cnblogs.com/bluebirds/archive/2017/02/08/6378324.html