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 相关文章推荐
Classes and Objects in PHP5-面向对象编程 [1]
Oct 09 PHP
怎么样可以把 phpinfo()屏蔽掉?
Nov 24 PHP
PHPMyadmin 配置文件详解(配置)
Dec 03 PHP
通过php快速统计某个数据库中每张表的数据量
Sep 04 PHP
关于JSON以及JSON在PHP中的应用技巧
Nov 27 PHP
淘宝ip地址查询类分享(利用淘宝ip库)
Jan 07 PHP
php按百分比生成缩略图的代码分享
May 10 PHP
thinkPHP中多维数组的遍历方法
Jan 09 PHP
thinkPHP模板中函数的使用方法示例
Nov 30 PHP
简单解决微信文章图片防盗链问题
Dec 17 PHP
PHP的mysqli_thread_id()函数讲解
Jan 24 PHP
laravel model模型定义实现开启自动管理时间created_at,updated_at
Oct 17 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
骨王战斗力在公会成员中排不进前五,却当选了会长,原因竟是这样
2020/03/02 日漫
第十一节 重载 [11]
2006/10/09 PHP
PHP 冒泡排序算法的实现代码
2010/08/08 PHP
PHP大批量数据操作时临时调整内存与执行时间的方法
2011/04/20 PHP
根据中文裁减字符串函数的php代码
2013/12/03 PHP
在php和MySql中计算时间差的方法详解
2015/03/27 PHP
PHP中多线程的两个实现方法
2016/10/14 PHP
自写的利用PDO对mysql数据库增删改查操作类
2018/02/19 PHP
对YUI扩展的Gird组件 Part-2
2007/03/10 Javascript
各种效果的jquery ui(接口)介绍
2008/09/17 Javascript
JQuery UI皮肤定制
2009/07/27 Javascript
jQuery .attr()和.removeAttr()方法操作元素属性示例
2013/07/16 Javascript
浅析IE10兼容性问题(frameset的cols属性)
2014/01/03 Javascript
jquery JSON的解析方式示例介绍
2014/07/27 Javascript
使用nodejs开发cli项目实例
2015/06/03 NodeJs
javascript获取本机操作系统类型的方法
2015/08/13 Javascript
js HTML5 Ajax实现文件上传进度条功能
2016/02/13 Javascript
bootstrap 模态框(modal)实现水平垂直居中显示
2017/01/23 Javascript
详解Vue 中 extend 、component 、mixins 、extends 的区别
2017/12/20 Javascript
vue弹窗组件使用方法
2018/04/28 Javascript
Bootstrap table 服务器端分页功能实现方法示例
2020/06/01 Javascript
vue 验证两次输入的密码是否一致的方法示例
2020/09/29 Javascript
在vue中使用inheritAttrs实现组件的扩展性介绍
2020/12/07 Vue.js
python实现的生成随机迷宫算法核心代码分享(含游戏完整代码)
2014/07/11 Python
Python实现的矩阵类实例
2017/08/22 Python
Python多线程应用于自动化测试操作示例
2018/12/06 Python
Python lambda表达式用法实例分析
2018/12/25 Python
使用CSS3制作倾斜导航条和毛玻璃效果
2017/09/12 HTML / CSS
美国女士时尚珠宝及配饰购物网站:Icing
2018/07/02 全球购物
navabi英国:设计师大码女装
2019/06/25 全球购物
介绍一下Linux内核的排队自旋锁
2014/01/04 面试题
小学教育毕业生自荐信
2013/11/18 职场文书
活动总结书
2014/05/08 职场文书
2014年小班保育员工作总结
2014/12/23 职场文书
诚信教育主题班会
2015/08/13 职场文书
yyds什么意思?90后已经听不懂00后讲话了……
2022/02/03 杂记