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 Undefined index和Undefined variable的解决方法
Mar 27 PHP
一步一步学习PHP(2)――PHP类型
Feb 15 PHP
PHP初学者最感迷茫的问题小结
Mar 27 PHP
ThinkPHP3.2.2的插件控制器功能简述
Jul 09 PHP
PHP多个文件上传到服务器实例
Oct 29 PHP
php生成随机颜色的方法
Nov 13 PHP
PHP+MySQL修改记录的方法
Jan 21 PHP
PHP常见的6个错误提示及解决方法
Jul 07 PHP
PHP函数rtrim()使用中的怪异现象分析
Feb 24 PHP
php实现的redis缓存类定义与使用方法示例
Aug 09 PHP
PHP读取目录树的实现方法分析
Mar 22 PHP
Laravel框架源码解析之入口文件原理分析
May 14 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实现框架(二)
2006/10/09 PHP
PHP数字格式化
2006/12/06 PHP
require(),include(),require_once()和include_once()区别
2008/03/27 PHP
php求正负数数组中连续元素最大值示例
2014/04/11 PHP
PHP中使用smarty生成静态文件的例子
2014/04/24 PHP
php计算年龄精准到年月日
2015/11/17 PHP
用javascript实现的仿Flash广告图片轮换效果
2007/04/24 Javascript
基于jQuery的的一个隔行变色,鼠标移动变色的小插件
2010/07/06 Javascript
中文字符串截取的js函数代码
2013/04/17 Javascript
使用upstart把nodejs应用封装为系统服务实例
2014/06/01 NodeJs
JavaScript中的值类型转换介绍
2014/12/31 Javascript
移动设备web开发首选框架:zeptojs介绍
2015/01/29 Javascript
jquery实现用户信息修改验证输入方法汇总
2015/07/18 Javascript
jquery控制显示服务器生成的图片流
2015/08/04 Javascript
jQuery实现form表单元素序列化为json对象的方法
2015/12/09 Javascript
jQuery如何获取动态添加的元素
2016/06/24 Javascript
JavaScript暂停和继续定时器的实现方法
2016/07/18 Javascript
js 判断各种数据类型的简单方法(推荐)
2016/08/29 Javascript
js给table赋值的实例代码
2016/10/13 Javascript
Html中 IFrame的用法及注意点
2016/12/22 Javascript
Angular JS数据的双向绑定详解及实例
2016/12/31 Javascript
浅谈js-FCC算法Friendly Date Ranges(详解)
2017/04/10 Javascript
详解vue 2.6 中 slot 的新用法
2019/07/09 Javascript
基于javascript处理二进制图片流过程详解
2020/06/08 Javascript
Swiper实现导航栏滚动效果
2020/10/16 Javascript
python实现批量转换文件编码(批转换编码示例)
2014/01/23 Python
python计数排序和基数排序算法实例
2014/04/25 Python
Python实现八大排序算法
2016/08/13 Python
Django框架教程之中间件MiddleWare浅析
2019/12/29 Python
pytorch 实现打印模型的参数值
2019/12/30 Python
植村秀加拿大官网:Shu Uemura加拿大
2019/09/03 全球购物
项目经理的岗位职责
2013/11/23 职场文书
推荐信格式要求
2014/05/09 职场文书
旅游活动总结
2014/08/27 职场文书
学雷锋活动简报
2015/07/20 职场文书
深入浅出的讲解:信号调制到底是如何实现的
2022/02/18 无线电