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 相关文章推荐
BBS(php &amp; mysql)完整版(七)
Oct 09 PHP
PHP调用Twitter的RSS的实现代码
Mar 10 PHP
php连接数据库代码应用分析
May 29 PHP
如何在symfony中导出为CSV文件中的数据
Oct 06 PHP
php过滤表单提交的html等危险代码
Nov 03 PHP
thinkPHP+ajax实现统计页面pv浏览量的方法
Mar 15 PHP
浅谈PHP的exec()函数无返回值排查方法(必看)
Mar 31 PHP
thinkphp 验证码 的使用小结
May 07 PHP
PHP利用Socket获取网站的SSL证书与公钥
Jun 18 PHP
PHP7.1实现的AES与RSA加密操作示例
Jun 15 PHP
php中关于换行的实例写法
Sep 26 PHP
PHP命名空间(namespace)原理与用法详解
Dec 11 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循环语句 for()与foreach()用法区别介绍
2012/09/05 PHP
PHP+ajaxfileupload+jcrop插件完美实现头像上传剪裁
2014/06/09 PHP
php+mysqli数据库连接的两种方式
2015/01/28 PHP
帝国cms常用标签汇总
2015/07/06 PHP
项目中应用Redis+Php的场景
2016/05/22 PHP
php rsa 加密,解密,签名,验签详解
2016/12/06 PHP
CL vs ForZe BO5 第五场 2.13
2021/03/10 DOTA
JavaScript面向对象编程
2008/03/02 Javascript
zShowBox 图片放大展示jquery版 兼容性
2011/09/24 Javascript
js实现从数组里随机获取元素
2015/01/12 Javascript
Bootstrap编写一个兼容主流浏览器的受众门户式风格页面
2016/07/01 Javascript
Javascript表单特效之十大常用原理性样例代码大总结
2016/07/12 Javascript
如何实现星星评价(jquery.raty.js插件)
2016/12/21 Javascript
微信小程序 Canvas增强组件实例详解及源码分享
2017/01/04 Javascript
详解Vue微信公众号开发踩坑全记录
2017/08/21 Javascript
Vue-router 切换组件页面时进入进出动画方法
2018/09/01 Javascript
[01:03:27]Optic vs VGJ.S 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
Python multiprocessing模块中的Pipe管道使用实例
2015/04/11 Python
python实现ping的方法
2015/07/06 Python
Python Requests 基础入门
2016/04/07 Python
Python使用smtplib模块发送电子邮件的流程详解
2016/06/27 Python
使用Python通过win32 COM打开Excel并添加Sheet的方法
2018/05/02 Python
完美解决python中ndarray 默认用科学计数法显示的问题
2018/07/14 Python
Python 判断奇数偶数的方法
2018/12/20 Python
ActiveMQ:使用Python访问ActiveMQ的方法
2019/01/30 Python
python 计算数据偏差和峰度的方法
2019/06/29 Python
浅谈Python中的模块
2020/06/10 Python
使用canvas实现黑客帝国数字雨效果
2020/01/02 HTML / CSS
Asics日本官网:鬼冢八喜郎创立的跑鞋运动品牌
2017/10/18 全球购物
如何转换一个字符串到enum值
2014/04/12 面试题
企划主管岗位职责
2013/12/12 职场文书
会计电算化专业毕业生推荐信
2013/12/24 职场文书
读书小明星事迹材料
2014/05/03 职场文书
防沙治沙典型材料
2014/05/07 职场文书
八年级作文之感恩
2019/11/22 职场文书
python实现黄金分割法的示例代码
2021/04/28 Python