ThinkPHP中的常用数据库查询语言汇总

本文实例汇总了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 );
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值