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安装全攻略:APACHE
Oct 09 PHP
PHP 字符串操作入门教程
Dec 06 PHP
PHP 函数语法介绍一
Jun 14 PHP
PHP has encountered an Access Violation 错误的解决方法
Jan 17 PHP
php学习笔记之 函数声明(二)
Jun 09 PHP
php清空(删除)指定目录下的文件,不删除目录文件夹的实现代码
Sep 04 PHP
PHP多线程类及用法实例
Dec 03 PHP
PHP递归创建多级目录
Nov 05 PHP
PHP Yii框架之表单验证规则大全
Nov 16 PHP
分享50个提高PHP执行效率的技巧
Dec 26 PHP
Thinkphp5+uploadify实现的文件上传功能示例
May 26 PHP
PHP超低内存遍历目录文件和读取超大文件的方法
May 01 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
单位速度在实战中的运用
2020/03/04 星际争霸
php过滤危险html代码
2008/08/18 PHP
php中ltrim()、rtrim()与trim()删除字符空格实例
2014/11/25 PHP
ThinkPHP框架实现的MySQL数据库备份功能示例
2018/05/24 PHP
用JavaScript计算在UTF-8下存储字符串占用字节数
2013/08/08 Javascript
Jquery操作js数组及对象示例代码
2014/05/11 Javascript
JS中prototype的用法实例分析
2015/03/19 Javascript
jquery使用remove()方法删除指定class子元素
2015/03/26 Javascript
基于jQuery Bar Indicator 插件实现进度条展示效果
2015/09/30 Javascript
js如何准确获取当前页面url网址信息
2020/09/13 Javascript
[原创]jQuery常用的4种加载方式分析
2016/07/25 Javascript
jQuery右下角悬浮广告实例
2016/10/17 Javascript
详解windows下vue-cli及webpack 构建网站(三)使用组件
2017/06/17 Javascript
原生js实现拖拽移动与缩放效果
2020/08/24 Javascript
python 字符串split的用法分享
2013/03/23 Python
Python中分数的相关使用教程
2015/03/30 Python
matplotlib 纵坐标轴显示数据值的实例
2018/05/25 Python
Python中交换两个元素的实现方法
2018/06/29 Python
python将字符串list写入excel和txt的实例
2019/07/20 Python
Python3批量移动指定文件到指定文件夹方法示例
2019/09/02 Python
Python 继承,重写,super()调用父类方法操作示例
2019/09/29 Python
python数据预处理方式 :数据降维
2020/02/24 Python
解决jupyter运行pyqt代码内核重启的问题
2020/04/16 Python
scrapy利用selenium爬取豆瓣阅读的全步骤
2020/09/20 Python
Python爬虫爬取微博热搜保存为 Markdown 文件的源码
2021/02/22 Python
海量信息软件测试笔试题
2015/08/08 面试题
中文师范生自荐信
2014/01/30 职场文书
大学毕业生求职自荐信
2014/02/20 职场文书
合同协议书格式
2014/04/18 职场文书
金融专业毕业生自荐信
2014/06/26 职场文书
关于教师节的广播稿
2014/09/10 职场文书
投资意向协议书
2015/01/29 职场文书
Redis主从配置和底层实现原理解析(实战记录)
2021/06/30 Redis
vue ref如何获取子组件属性值
2022/03/31 Vue.js
AJAX引擎原理以及XmlHttpRequest对象的axios、fetch区别详解
2022/04/09 Javascript