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 相关文章推荐
在Zeus Web Server中安装PHP语言支持
Oct 09 PHP
php之对抗Web扫描器的脚本技巧
Oct 01 PHP
PHP 编写的 25个游戏脚本
May 11 PHP
php Notice: Undefined index 错误提示解决方法
Aug 29 PHP
PHP无刷新上传文件实现代码
Sep 19 PHP
php获取用户浏览器版本的方法
Jan 03 PHP
详解PHP的Yii框架中的Controller控制器
Mar 29 PHP
PHP基于GD库的图像处理方法小结
Sep 27 PHP
php可变长参数处理函数详解
Feb 22 PHP
php将html转为图片的实现方法
May 19 PHP
基于PHP实现微信小程序客服消息功能
Aug 12 PHP
PHP实现批量修改文件名的方法示例
Sep 18 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文件上传类实例讲解
2015/10/27 PHP
jquery自动将form表单封装成json的具体实现
2014/03/17 Javascript
28个常用JavaScript方法集锦
2015/01/14 Javascript
javascript生成img标签的3种实现方法(对象、方法、html)
2015/12/25 Javascript
jQuery validate插件submitHandler提交导致死循环解决方法
2016/01/21 Javascript
几种经典排序算法的JS实现方法
2016/03/25 Javascript
js实现可键盘控制的简单抽奖程序
2016/07/13 Javascript
Bootstrap Table使用整理(四)之工具栏
2017/06/09 Javascript
js实现本地时间同步功能
2017/08/26 Javascript
深入浅析js原型链和vue构造函数
2018/10/25 Javascript
js canvas实现二维码和图片合成的海报
2020/11/19 Javascript
微信小程序实现联动选择器
2019/02/15 Javascript
微信小程序基础教程之worker线程的使用方法
2019/07/15 Javascript
Javascript实现鼠标点击冒泡特效
2019/12/24 Javascript
通过实例解析JavaScript常用排序算法
2020/09/02 Javascript
Vue ​v-model相关知识总结
2021/01/28 Vue.js
[32:07]完美世界DOTA2联赛PWL S3 LBZS vs Rebirth 第一场 12.16
2020/12/17 DOTA
浅谈Python 中整型对象的存储问题
2016/05/16 Python
django小技巧之html模板中调用对象属性或对象的方法
2018/11/30 Python
python使用udp实现聊天器功能
2018/12/10 Python
PyQt5组件读取参数的实例
2019/06/25 Python
python urllib爬虫模块使用解析
2019/09/05 Python
python字符串的拼接方法总结
2019/11/18 Python
PyQt5实现简单的计算器
2020/05/30 Python
浅析HTML5 meta viewport参数
2020/10/28 HTML / CSS
Python中pass语句的作用是什么
2016/06/01 面试题
金额转换,阿拉伯数字的金额转换成中国传统的形式如:(¥1011)-> (一千零一拾一元整)输出
2015/05/29 面试题
争先创优演讲稿
2014/09/15 职场文书
有限公司股东合作协议书
2014/10/29 职场文书
护理医院见习报告
2014/11/03 职场文书
2015年社区居委会工作总结
2015/05/18 职场文书
《分数的意义》教学反思
2016/02/20 职场文书
诚信高考倡议书
2019/06/24 职场文书
Laravel中获取IP的真实地理位置
2021/04/01 PHP
详解python网络进程
2021/06/15 Python
详解Python为什么不用设计模式
2021/06/24 Python