ThinkPHP中的常用查询语言汇总


Posted in PHP onAugust 22, 2014

本文实例汇总了ThinkPHP中的常用查询语言,供大家参考之用。相信能给大家ThinkPHP开发带来一定的帮助。具体如下:

一、普通查询:

在查询带入where条件等,最少有三种形式

1、字符串形式:

'id>5 and id<9'

2、数组形式:

示例代码如下:

$user=M('user');
$data['username']='liwenkai';
$list=$user->where(array('username'=>'liwenkai'))->select();
$list=$user->where($data)->select();

3、对象形式:

示例代码如下:

$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语句,实现更加复杂的情况

常用形式:

$data['字段名']=array('是表达式','查询条件');

此外

$data['liwenkai']='liwenkai';

实际上等价于

$data['liwenkai']=array('eq','liwenkai');

示例如下:

$data['username']=array('like','peng%');
$list=$user->where($data)->select();

二、区间查询:

示例如下:

$user=M('user');
$data['id']=array(array('gt',20),array('lt',23),'and');
$list=$user->where($data)->select();
dump($list);
$data['username']=array(array('like','p%'),array('like','h%'),'or');

三、组合查询:

示例如下:

$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);

四、复合查询:

示例如下:

$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);

相当于

(id<30)and ( (username=pengyanjie) or (password like p%) )

五、统计查询:

示例如下:

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');

六、定位查询:

示例如下:

$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()主要用于更新和写入:

$Model = new Model() // 实例化一个 model 对象  没有对应任何数据表
$Model->execute( "update think_user set name='thinkPHP' where status=1" );

2.query()主要用于查询:

$user=M();
$list=$user->query('select * from aoli_user order by id desc');
dump($list);        

八、动态查询

示例如下:

$user=M('user');
$list=$user->getByusername('pengyanjie');
$list=$user->getByusername('pengyanjie');
dump($list);
$user=new AdvModel('user');
$list=$user->top5();//前5条
dump($list);

感兴趣的朋友可以在ThinkPHP项目中调试运行本文示例,相信会有新的收获。

PHP 相关文章推荐
特转载一高手总结PHP学习资源和链接.
Dec 05 PHP
给php新手谈谈我的学习心得
Feb 25 PHP
php5中date()得出的时间为什么不是当前时间的解决方法
Jun 30 PHP
php获取某个目录大小的代码
Sep 10 PHP
ThinkPHP CURD方法之data方法详解
Jun 18 PHP
PHP中两个float(浮点数)比较实例分析
Sep 27 PHP
ThinkPHP模板循环输出Volist标签用法实例详解
Mar 23 PHP
详解PHP中websocket的使用方法
Sep 15 PHP
PHP addAttribute()函数讲解
Feb 03 PHP
在laravel框架中使用model层的方法
Oct 08 PHP
PHP开发api接口安全验证操作实例详解
Mar 26 PHP
Swoole扩展的6种模式深入详解
Mar 04 PHP
ThinkPHP多语言支持与多模板支持概述
Aug 22 #PHP
ThinkPHP中的三大自动简介
Aug 22 #PHP
PHP实现克鲁斯卡尔算法实例解析
Aug 22 #PHP
php中限制ip段访问、禁止ip提交表单的代码分享
Aug 22 #PHP
destoon出现验证码不显示时的紧急处理方法
Aug 22 #PHP
PHP中new static()与new self()的区别异同分析
Aug 22 #PHP
PHP中的替代语法简介
Aug 22 #PHP
You might like
PHP+JS+rsa数据加密传输实现代码
2011/03/23 PHP
php实现图片添加水印功能
2014/02/13 PHP
php简单实现MVC
2015/02/05 PHP
jQuery实现单击按钮遮罩弹出对话框(仿天猫的删除对话框)
2014/04/10 Javascript
JavaScript使用HTML5的window.postMessage实现跨域通信例子
2014/04/11 Javascript
JavaScript 事件对象介绍
2015/04/13 Javascript
详解JavaScript中jQuery和Ajax以及JSONP的联合使用
2015/08/13 Javascript
JavaScript模块化开发之SeaJS
2015/12/13 Javascript
jQueryUI中的datepicker使用方法详解
2016/05/25 Javascript
select隐藏选中值对应的id,显示其它id的简单实现方法
2016/08/25 Javascript
JavaScript每天必学之事件
2016/09/18 Javascript
vue实现长图垂直居上 vue实现短图垂直居中
2017/10/18 Javascript
NodeJs搭建本地服务器之使用手机访问的实例讲解
2018/05/12 NodeJs
js动态设置select下拉菜单的默认选中项实例
2018/08/21 Javascript
10分钟彻底搞懂Http的强制缓存和协商缓存(小结)
2018/08/30 Javascript
详解原生JS动态添加和删除类
2019/03/26 Javascript
教你完全理解ReentrantLock重入锁
2019/06/03 Javascript
解决layer.open后laydate失效的问题
2019/09/06 Javascript
JavaScript如何把两个数组对象合并过程解析
2019/10/10 Javascript
JavaScript实现京东快递单号查询
2020/11/30 Javascript
[46:02]DOTA2上海特级锦标赛D组资格赛#2 Liquid VS VP第二局
2016/02/28 DOTA
[01:28]国服启动器接入蒸汽平台操作流程视频
2021/03/11 DOTA
[01:23:24]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Elephant BO3 第三场 2月7日
2021/03/11 DOTA
解决python中无法自动补全代码的问题
2018/12/04 Python
python实现转盘效果 python实现轮盘抽奖游戏
2019/01/22 Python
python实现美团订单推送到测试环境,提供便利操作示例
2019/08/09 Python
使用python批量修改文件名的方法(视频合并时)
2020/03/24 Python
关于python 跨域处理方式详解
2020/03/28 Python
判断Threading.start新线程是否执行完毕的实例
2020/05/02 Python
python re模块常见用法例举
2021/03/01 Python
html5-canvas中使用clip抠出一个区域的示例代码
2018/05/25 HTML / CSS
H&M美国官网:欧洲最大的服饰零售商
2016/09/07 全球购物
Brother加拿大官网:打印机、贴标机、缝纫机
2019/10/09 全球购物
招商业务员岗位职责
2013/12/16 职场文书
2014和解协议书范文
2014/09/15 职场文书
2016春季幼儿园大班开学寄语
2015/12/03 职场文书