本文实例汇总了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项目中调试运行本文示例,相信会有新的收获。