本文实例汇总了ThinkPHP中的常用查询语言,供大家参考之用。相信能给大家ThinkPHP开发带来一定的帮助。具体如下:
一、普通查询:
在查询带入where条件等,最少有三种形式
1、字符串形式:
1
|
'id>5 and id<9'
|
2、数组形式:
示例代码如下:
1
2
3
4
|
$user =M( 'user' );
$data [ 'username' ]= 'liwenkai' ;
$list = $user ->where( array ( 'username' => 'liwenkai' ))->select();
$list = $user ->where( $data )->select();
|
3、对象形式:
示例代码如下:
1
2
3
4
|
$user =M( 'user' );
$a = new stdClass();
$a ->username= 'liwenkai' ;
$list = $user ->where( $a )->select();
|
4、查询表达式:
EQ 等于
NEQ 不等于
GT 大于
EGT 大于等于
LT 小于
ELT 小于等于
LIKE 等价与sql中的like
[NOT] BETWEEN 查询区间
[NOT] IN 查询集合
EXP 指使用标准SQL语句,实现更加复杂的情况
常用形式:
1
|
$data [ '字段名' ]= array ( '是表达式' , '查询条件' );
|
此外
1
|
$data [ 'liwenkai' ]= 'liwenkai' ;
|
实际上等价于
1
|
$data [ 'liwenkai' ]= array ( 'eq' , 'liwenkai' );
|
示例如下:
1
2
|
$data [ 'username' ]= array ( 'like' , 'peng%' );
$list = $user ->where( $data )->select();
|
二、区间查询:
示例如下:
1
2
3
4
|
$user =M( 'user' );
$data [ 'id' ]= array ( array ( 'gt' ,20), array ( 'lt' ,23), 'and' );
$list = $user ->where( $data )->select();
dump( $list );
|
1
|
$data [ 'username' ]= array ( array ( 'like' , 'p%' ), array ( 'like' , 'h%' ), 'or' );
|
三、组合查询:
示例如下:
1
2
3
4
5
6
7
|
$user =M( 'user' );
$data [ 'username' ]= 'pengyanjie' ;
$data [ 'password' ]= array ( 'eq' , 'pengyanjie' );
$data [ 'id' ]= array ( 'lt' ,30);
$data [ '_logic' ]= 'or' ;
$list = $user ->where( $data )->select();
dump( $list );
|
四、复合查询:
示例如下:
1
2
3
4
5
6
7
8
|
$user =M( 'user' );
$data [ 'username' ]= array ( 'eq' , 'pengyanjie' );
$data [ 'password' ]= array ( 'like' , 'p%' );
$data [ '_logic' ]= 'or' ;
$where [ '_complex' ]= $where ;
$where [ 'id' ]= array ( 'lt' ,30);
$list = $user ->where( $data )->select();
dump( $list );
|
相当于
1
|
(id<30) and ( (username=pengyanjie) or (password like p%) )
|
五、统计查询:
示例如下:
1
2
3
4
5
6
7
8
9
|
echo $user -> count ();
echo '<br>' ;
echo $user ->max( 'id' );
echo '<br>' ;
echo $user ->where( 'id<30' )->min( 'id' );
echo '<br>' ;
echo $user ->avg( 'id' );
echo '<br>' ;
echo $user ->sum( 'id' );
|
六、定位查询:
示例如下:
1
2
3
4
5
6
7
|
$user = new AdvModel( 'user' ); //实例化高级模型AdvModel
//$user=M('user','CommonModel');//或者将AdvModel用CommonModel来继承
$list = $user ->order( 'id desc' )->getN(2); //返回结果中的第三条
dump( $list );
$list = $user ->order( 'id desc' )->last(); //返回最后一条
$list = $user ->order( 'id desc' )->first(); //返回第一条
|
七、SQL查询:
1.excute()主要用于更新和写入:
1
2
|
$Model = new Model() // 实例化一个 model 对象 没有对应任何数据表
$Model ->execute( "update think_user set name='thinkPHP' where status=1" );
|
2.query()主要用于查询:
1
2
3
|
$user =M();
$list = $user ->query( 'select * from aoli_user order by id desc' );
dump( $list );
|
八、动态查询
示例如下:
1
2
3
4
|
$user =M( 'user' );
$list = $user ->getByusername( 'pengyanjie' );
$list = $user ->getByusername( 'pengyanjie' );
dump( $list );
|
1
2
3
|
$user = new AdvModel( 'user' );
$list = $user ->top5(); //前5条
dump( $list );
|
感兴趣的朋友可以在ThinkPHP项目中调试运行本文示例,相信会有新的收获。