thinkPHP的表达式查询用法详解


Posted in PHP onSeptember 14, 2016

本文实例讲述了thinkPHP的表达式查询。分享给大家供大家参考,具体如下:

ThinkPHP 表达式

这里说的表达式,是指 ThinkPHP 框架中特有的表达式。这些表达式用于查询或更新删除等操作的 where条件 及模板标签中。

Where 条件中使用表达式

Where 条件表达式格式为:

$map['字段名']  = array('表达式', '操作条件');

其中 $map 是一个普通的数组变量,可以根据自己需求而命名。上述格式中的表达式实际是运算符的意义:

ThinkPHP运算符 与 SQL运算符 对照表
TP运算符 SQL运算符 例子 实际查询条件
eq = $map['id'] = array('eq',100); 等效于:$map['id'] = 100;
neq != $map['id'] = array('neq',100); id != 100
gt > $map['id'] = array('gt',100); id > 100
egt >= $map['id'] = array('egt',100); id >= 100
lt $map['id'] = array('lt',100); id
elt $map['id'] = array('elt',100); id
like like $map['username'] = array('like','Admin%'); username like 'Admin%'
between between and $map['id'] = array('between','1,8'); id BETWEEN 1 AND 8
not between not between and $map['id'] = array('not between','1,8'); id NOT BETWEEN 1 AND 8
in in $map['id'] = array('in','1,5,8'); id in(1,5,8)
not in not in $map['id'] = array('not in','1,5,8'); id not in(1,5,8)
and(默认) and $map['id'] = array(array('gt',1),array('lt',10)); (id > 1) AND (id
or or $map['id'] = array(array('gt',3),array('lt',10), 'or'); (id > 3) OR (id
xor(异或) xor 两个输入中只有一个是true时,结果为true,否则为false,例子略。 1 xor 1 = 0
exp 综合表达式 $map['id'] = array('exp','in(1,3,8)'); $map['id'] = array('in','1,3,8');

补充说明

同 SQL 一样,ThinkPHP运算符不区分大小写,eq 与 EQ 一样。

between、 in 条件支持字符串或者数组,即下面两种写法是等效的:

$map['id'] = array('not in','1,5,8');
$map['id'] = array('not in',array('1','5','8'));

exp 表达式

上表中的 exp 不是一个运算符,而是一个综合表达式以支持更复杂的条件设置。exp 的操作条件不会被当成字符串,可以使用任何 SQL 支持的语法,包括使用函数和字段名称。

exp 不仅用于 where 条件,也可以用于数据更新,如:

$Dao = M("Article");
// 构建 save 的数据数组,文章点击数+1
$data['aid'] = 10;
$data['counter'] = array('exp','counter+1');
// 根据条件保存修改的数据
$User->save($data);

注:对于数字字段的加减,可以直接使

希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

PHP 相关文章推荐
Mysql的常用命令
Oct 09 PHP
用header 发送cookie的php代码
Mar 16 PHP
php 数组的合并、拆分、区别取值函数集
Feb 15 PHP
PHP实例分享判断客户端是否使用代理服务器及其匿名级别
Jun 04 PHP
thinkphp的URL路由规则与配置实例
Nov 26 PHP
PHP中调用C/C++制作的动态链接库的教程
Mar 10 PHP
PHP文字转图片功能原理与实现方法分析
Aug 31 PHP
实例解析php的数据类型
Oct 24 PHP
PHP中ltrim()函数的用法与实例讲解
Mar 28 PHP
解决tp5在nginx下修改配置访问的问题
Oct 16 PHP
PHP 枚举类型的管理与设计知识点总结
Feb 13 PHP
php中使用array_filter()函数过滤数组实例讲解
Mar 03 PHP
PHP实现对二维数组某个键排序的方法
Sep 14 #PHP
Laravel+jQuery实现AJAX分页效果
Sep 14 #PHP
php+ajax实现带进度条的上传图片功能【附demo源码下载】
Sep 14 #PHP
PHP自定义函数实现格式化秒的方法
Sep 14 #PHP
PHP经典算法集锦【经典收藏】
Sep 14 #PHP
微信支付的开发流程详解
Sep 13 #PHP
PHP仿微信多图片预览上传实例代码
Sep 13 #PHP
You might like
PHP 上传文件的方法(类)
2009/07/30 PHP
mantis安装、配置和使用中的问题小结
2014/07/14 PHP
PHP操作Postgresql封装类与应用完整实例
2018/04/24 PHP
Laravel 数据库加密及数据库表前缀配置方法
2019/10/10 PHP
为JS扩展Array.prototype.indexOf引发的问题及解决办法
2015/01/21 Javascript
js实现模拟计算器退格键删除文字效果的方法
2015/05/07 Javascript
js实现卡片式项目管理界面UI设计效果
2015/12/08 Javascript
微信小程序 前端源码逻辑和工作流详解
2016/10/08 Javascript
javascript实现消灭星星小游戏简单版
2016/11/15 Javascript
Bootstrap超大屏幕的实现代码
2017/03/22 Javascript
vue中引用阿里字体图标的方法
2018/02/10 Javascript
[原创]js实现保存文本框内容为本地文件兼容IE,chrome,火狐浏览器
2018/02/14 Javascript
Vue + better-scroll 实现移动端字母索引导航功能
2018/05/07 Javascript
jQuery解析json格式数据示例
2018/09/01 jQuery
原生js实现trigger方法示例代码
2019/05/22 Javascript
JavaScript使用面向对象实现的拖拽功能详解
2019/06/12 Javascript
浅析Vue 防抖与节流的使用
2019/11/14 Javascript
[56:35]DOTA2上海特级锦标赛C组小组赛#1 OG VS Archon第二局
2016/02/27 DOTA
[00:33]2018DOTA2亚洲邀请赛TNC出场
2018/04/04 DOTA
Python 基础教程之闭包的使用方法
2017/09/29 Python
Python创建对称矩阵的方法示例【基于numpy模块】
2017/10/12 Python
Python操作MongoDB数据库的方法示例
2018/01/04 Python
python re模块findall()函数实例解析
2018/01/19 Python
使用Python和Prometheus跟踪天气的使用方法
2019/05/06 Python
Python的缺点和劣势分析
2019/11/19 Python
Python pathlib模块使用方法及实例解析
2020/10/05 Python
Python join()函数原理及使用方法
2020/11/14 Python
伦敦高达60%折扣的钻石珠宝商:Purely Diamonds
2018/06/24 全球购物
法律专业应届本科毕业生求职信
2013/10/25 职场文书
产假请假条
2014/04/10 职场文书
建设单位项目负责人任命书
2014/06/06 职场文书
幼儿园见习报告范文
2014/10/30 职场文书
2015年学校总务处工作总结
2015/05/19 职场文书
小学庆六一主持词
2015/06/30 职场文书
有关保护环境的宣传标语100条
2019/08/07 职场文书
MySQL视图概念以及相关应用
2022/04/19 MySQL