通用:
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