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 相关文章推荐
Content-type 的说明
Oct 09 PHP
初级的用php写的采集程序
Mar 16 PHP
浅析PHP中Collection 类的设计
Jun 21 PHP
php利用新浪接口查询ip获取地理位置示例
Jan 20 PHP
php动态生成函数示例
Mar 21 PHP
php+mysqli实现批量执行插入、更新及删除数据的方法
Jan 29 PHP
PHP基于cookie与session统计网站访问量并输出显示的方法
Jan 15 PHP
php parse_str() 函数的定义和用法
May 23 PHP
PHP依赖注入原理与用法分析
Aug 21 PHP
PHP7数组的底层实现示例
Aug 25 PHP
PHP设计模式(五)适配器模式Adapter实例详解【结构型】
May 02 PHP
Laravel的加密解密与哈希实例讲解
Mar 24 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开发环境配置记录
2011/01/14 PHP
php获取网页里所有图片并存入数组的方法
2015/04/06 PHP
PHP使用socket发送HTTP请求的方法
2016/02/14 PHP
php5对象复制、clone、浅复制与深复制实例详解
2019/08/14 PHP
网页里控制图片大小的相关代码
2006/06/25 Javascript
小议Function.apply() 之一------(函数的劫持与对象的复制)
2006/11/30 Javascript
JavaScript实现简单的二级导航菜单实例
2015/04/15 Javascript
jQuery实现定时读取分析xml文件的方法
2015/07/16 Javascript
js实现仿爱微网两级导航菜单效果代码
2015/08/31 Javascript
js实现页面跳转的五种方法推荐
2016/03/10 Javascript
jquery分页插件jquery.pagination.js使用方法解析
2016/04/01 Javascript
javascript正则表达式之分组概念与用法实例
2016/06/16 Javascript
JS自定义函数对web前端上传的文件进行类型大小判断
2016/10/19 Javascript
JS中数组重排序方法
2016/11/11 Javascript
bootstrap 路径导航 分页 进度条的实例代码
2018/08/06 Javascript
JS前端知识点offset,scroll,client,冒泡,事件对象的应用整理总结
2019/06/27 Javascript
js实现转动骰子模型
2019/10/24 Javascript
Vue.js watch监视属性知识点总结
2019/11/11 Javascript
js中!和!!的区别与用法
2020/05/09 Javascript
js实现微信聊天界面
2020/08/09 Javascript
jQuery实现评论模块
2020/08/19 jQuery
vue 虚拟DOM的原理
2020/10/03 Javascript
[16:01]夜魇凡尔赛茶话会 第二期01:你比划我猜
2021/03/11 DOTA
python实现的正则表达式功能入门教程【经典】
2017/06/05 Python
django初始化数据库的实例
2018/05/27 Python
详解python中TCP协议中的粘包问题
2019/03/22 Python
把JSON数据格式转换为Python的类对象方法详解(两种方法)
2019/06/04 Python
python time.sleep()是睡眠线程还是进程
2019/07/09 Python
python web框架中实现原生分页
2019/09/08 Python
Python Pillow.Image 图像保存和参数选择方式
2020/01/09 Python
构建高效课堂实施方案
2014/03/13 职场文书
《棉鞋里的阳光》教学反思
2014/04/24 职场文书
企业口号大全
2014/06/12 职场文书
目标责任书格式
2014/07/28 职场文书
俞敏洪一分钟演讲稿
2014/08/26 职场文书
2014年教育工作总结
2014/11/26 职场文书