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 相关文章推荐
php的字符串用法小结
Jun 08 PHP
基于wordpress主题制作的具体实现步骤
May 10 PHP
解析php中用PHPMailer来发送邮件的示例(126.com的例子)
Jun 24 PHP
PHP中常用的转义函数
Feb 28 PHP
php中用memcached实现页面防刷新功能
Aug 19 PHP
PHP文件缓存类实现代码
Oct 26 PHP
理解PHP中的Session及对Session有效期的控制
Jan 08 PHP
PHP各种异常和错误的拦截方法及发生致命错误时进行报警
Jan 19 PHP
Zend Framework动作助手Url用法详解
Mar 05 PHP
PHP使用mysqli操作MySQL数据库的简单方法
Feb 04 PHP
ThinkPHP3.2框架自带分页功能实现方法示例
May 13 PHP
PHP实现一个限制实例化次数的类示例
Sep 16 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简单系统查询模块代码打包下载
2008/06/07 PHP
使用php方法curl抓取AJAX异步内容思路分析及代码分享
2014/08/25 PHP
PHP JSON格式的中文显示问题解决方法
2015/04/09 PHP
PHP实现基于文本的摩斯电码生成器
2016/01/11 PHP
tbody元素支持嵌套的注意方法
2007/03/24 Javascript
利用js跨页面保存变量做菜单的方法
2008/01/17 Javascript
ASP.NET jQuery 实例2 (表单中使用回车在TextBox之间向下移动)
2012/01/13 Javascript
JS复制内容到剪切板的实例代码(兼容IE与火狐)
2013/11/19 Javascript
JavaScript前端开发之实现二进制读写操作
2015/11/04 Javascript
浅谈js构造函数的方法与原型prototype
2016/07/04 Javascript
Javascript 获取鼠标当前的位置实现方法
2016/10/27 Javascript
JavaScript之WebSocket技术详解
2016/11/18 Javascript
js document.getElementsByClassName的使用介绍与自定义函数
2016/11/25 Javascript
jQuery实现发送验证码并60秒倒计时功能
2016/11/25 Javascript
原生JavaScript实现AJAX、JSONP
2017/02/07 Javascript
Mac系统下Webstorm快捷键整理大全
2017/05/28 Javascript
基于vue中解决v-for使用报红并出现警告的问题
2018/03/03 Javascript
JS中移除非数字最多保留一位小数
2018/05/09 Javascript
npm scripts 使用指南详解
2018/10/08 Javascript
js判断浏览器的环境(pc端,移动端,还是微信浏览器)
2020/12/24 Javascript
Python函数中*args和**kwargs来传递变长参数的用法
2016/01/26 Python
python实现BackPropagation算法
2017/12/14 Python
对Python 两大环境管理神器 pyenv 和 virtualenv详解
2018/12/31 Python
python 如何使用find和find_all爬虫、找文本的实现
2020/10/16 Python
解决pycharm导入numpy包的和使用时报错:RuntimeError: The current Numpy installation (‘D:\\python3.6\\lib\\site-packa的问题
2020/12/08 Python
Python 内存管理机制全面分析
2021/01/16 Python
澳大利亚100%丝绸多彩度假装商店:TheSwankStore
2019/09/04 全球购物
英国床垫和床架购物网站:Bedman
2019/11/04 全球购物
小学生环保倡议书
2014/05/15 职场文书
药品销售内勤岗位职责
2015/04/13 职场文书
人事任命通知
2015/04/20 职场文书
刑事附带民事起诉状
2015/05/19 职场文书
2016年幼儿园万圣节活动总结
2016/04/05 职场文书
pytorch Dropout过拟合的操作
2021/05/27 Python
python图像处理基本操作总结(PIL库、Matplotlib及Numpy)
2021/06/08 Python
MIME类型中application/xml与text/xml的区别介绍
2022/01/18 HTML / CSS