本文实例讲述了Yii模型操作之criteria查找数据库的方法。分享给大家供大家参考,具体如下:
数据模型搜索方法:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
public function search()
{
// Warning: Please modify the following code to remove attributes that
// should not be searched.
$criteria = new CDbCriteria;
$criteria ->compare( 'id' , $this ->id);
$criteria ->compare( 'title' , $this ->title,true); //支持模糊查找
$criteria ->compare( 'content' , $this ->content,true); //支持模糊查找
$criteria ->compare( 'type' , $this ->type);
$criteria ->compare( 'user' , $this ->user,true); //支持模糊查找
$criteria ->compare( 'status' , $this ->status);
$criteria ->compare( 'create_data' , $this ->create_data,true); //支持模糊查找
return new CActiveDataProvider( $this , array (
'criteria' => $criteria ,
'pagination' => array (
'pageSize' =>50,
),
));
}
|
定义比较运算:
1
2
|
$criteria ->compare( 'create_time' , '<=' . $this ->endtime),
//创建早间小于等于指定时间
|
定义要查找的字段:
1
2
3
4
|
//查找的结果
$criteria ->select = 'id,title,content,author,status,createtime' ,
//也可以以下一种方式定义
$criteria ->select = array ( 'id' , 'title' , 'content' , 'author' , 'status' , 'createtime' ),
|
定义填加查找条件:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
//定义条件
$criteria ->select = 'status=1' ,
//添加匹配
$criteria ->compare( 'title' , $this ->title,true),
//添加条件 $condition可以是数组,也可以是字符串,and可以省略
$criteria ->addCondition( $condition , 'and' ),
//添加IN条件 $column为字段名
$criteria ->addInCondition(string $column , array $values , string $operator = 'AND' )
//添加notin条件
$criteria ->addNotInCondition(string $column , array $values , string $operator = 'AND' )
//添加like条件
$criteria ->addSearchCondition(string $column , string $keyword ),
//添加Between条件
$criteria ->addBetweenCondition(string $column , string $valueStart , string $valueEnd , string $operator = 'AND' ),
|
JOIN连表查询
1
|
$criteria ->join = 'LEFT JOIN users ON users.id=authorID' ,
|
order查询结果排序:
1
|
$criteria ->order = 'createtime DESC' ,
|
group结果分组:
1
|
$criteria ->group = 'projectID, teamID' ,
|
having筛选分组结果分组数量:
1
|
$criteria ->having = 'SUM(revenue)<50000' ,
|
希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。