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实现小型站点广告管理(修正版)
Oct 09 PHP
IIS环境下快速安装、配置和调试PHP5.2.0
Dec 17 PHP
PHP DataGrid 实现代码
Aug 12 PHP
编写安全 PHP应用程序的七个习惯深入分析
Jun 08 PHP
php中stream(流)的用法
Mar 25 PHP
php使用gettimeofday函数返回当前时间并存放在关联数组里
Mar 19 PHP
PHP中SQL查询语句的id=%d解释(推荐)
Dec 10 PHP
PHP编程实现微信企业向用户付款的方法示例
Jul 26 PHP
PHP实现合并两个排序链表的方法
Jan 19 PHP
PHP实现的防止跨站和xss攻击代码【来自阿里云】
Jan 29 PHP
PHP设计模式之工厂模式(Factory Pattern)的讲解
Mar 21 PHP
gearman中worker常驻后台,导致MySQL server has gone away的解决方法
Feb 27 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中strlen和mb_strlen函数的区别
2014/03/07 PHP
PHP随机生成信用卡卡号的方法
2015/03/23 PHP
PHP实现简单计算器小程序
2020/08/28 PHP
Javascript 判断客户端浏览器类型代码
2010/03/01 Javascript
js中获取事件对象的方法小结
2011/03/13 Javascript
JSONP 跨域访问代理API-yahooapis实现代码
2012/12/02 Javascript
jquery在项目中做复选框时遇到的一些问题笔记
2013/11/17 Javascript
jQuery的animate函数学习记录
2014/08/08 Javascript
深入理解JavaScript系列(45):代码复用模式(避免篇)详解
2015/03/04 Javascript
JavaScript整除运算函数ceil和floor的区别分析
2015/04/14 Javascript
jQuery flip插件实现的翻牌效果示例【附demo源码下载】
2016/09/20 Javascript
JS实现的样式切换功能tableCSS实例
2016/12/30 Javascript
Easyui Tree获取当前选择节点的所有顶级父节点
2017/02/14 Javascript
Sublime Text新建.vue模板并高亮(图文教程)
2017/10/26 Javascript
使用Angular CLI快速创建Angular项目的一些基本概念和写法小结
2018/04/22 Javascript
nodejs读取本地中文json文件出现乱码解决方法
2018/10/10 NodeJs
Vue使用mixin分发组件的可复用功能
2019/09/01 Javascript
详解Vue之计算属性
2020/06/20 Javascript
js实现复制粘贴的两种方法
2020/12/04 Javascript
[15:09]DOTA2国际邀请赛采访专栏:Loda
2013/08/06 DOTA
python通过自定义isnumber函数判断字符串是否为数字的方法
2015/04/23 Python
Python装饰器的执行过程实例分析
2018/06/04 Python
详解Python最长公共子串和最长公共子序列的实现
2018/07/07 Python
Python绘制正余弦函数图像的方法
2018/08/28 Python
python爬取盘搜的有效链接实现代码
2019/07/20 Python
python numpy数组中的复制知识解析
2020/02/03 Python
图解Python中深浅copy(通俗易懂)
2020/09/03 Python
Python使用内置函数setattr设置对象的属性值
2020/10/16 Python
python爬虫快速响应服务器的做法
2020/11/24 Python
BONIA官方网站:国际奢侈品牌和皮革专家
2016/11/27 全球购物
测绘工程本科生求职信
2013/10/10 职场文书
英语专业毕业生求职简历的自我评价
2013/10/24 职场文书
表彰先进的通报
2014/01/31 职场文书
基层领导干部“四风”问题批评与自我批评
2014/09/23 职场文书
如何用python插入独创性声明
2021/03/31 Python
Redis高可用集群redis-cluster详解
2022/03/20 Redis