本文实例讲述了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程序设计有所帮助。