ThinkPHP Where 条件中常用表达式示例(详解)


Posted in PHP onMarch 31, 2017

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 = 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['id'] = 10;
$data['counter'] = array('exp','counter+1');
//根据条件保存修改的数据
$User->save($data);

以上这篇ThinkPHP Where 条件中常用表达式示例(详解)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
php 验证码制作(网树注释思想)
Jul 20 PHP
php中根据变量的类型 选择echo或dump
Jul 05 PHP
测试php函数的方法
Nov 13 PHP
php递归使用示例(php递归函数)
Feb 14 PHP
Laravel中使用自己编写类库的3种方法
Feb 10 PHP
php制作文本式留言板
Mar 18 PHP
php文件下载处理方法分析
Apr 22 PHP
php中header设置常见文件类型的content-type
Jun 23 PHP
php基于双向循环队列实现历史记录的前进后退等功能
Aug 08 PHP
PHP验证码类ValidateCode解析
Jan 07 PHP
Mac下php 5升级到php 7的步骤详解
Apr 26 PHP
phpStudy vscode 搭建debug调试的教程详解
Jul 28 PHP
浅谈PHP的exec()函数无返回值排查方法(必看)
Mar 31 #PHP
关于PHP通用返回值设置方法
Mar 31 #PHP
PHP针对中英文混合字符串长度判断及截取方法示例
Mar 31 #PHP
微信小程序 消息推送php服务器验证实例详解
Mar 30 #PHP
Yii2使用$this->context获取当前的Module、Controller(控制器)、Action等
Mar 29 #PHP
PHP的反射机制实例详解
Mar 29 #PHP
php面向对象之反射功能与用法分析
Mar 29 #PHP
You might like
用php+javascript实现二级级联菜单的制作
2008/05/06 PHP
php操作路径的经典方法(必看篇)
2016/10/04 PHP
PHP 8新特性简介
2020/08/18 PHP
基于PHP实现用户在线状态检测
2020/11/10 PHP
JavaScript代码复用模式实例分析
2012/12/02 Javascript
js下拉框二级关联菜单效果代码具体实现
2013/08/03 Javascript
使用jquery的ajax需要注意的地方dataType的设置
2013/08/12 Javascript
JS在IE下缺少标识符的错误
2014/07/23 Javascript
轻量级jQuery插件slideBox实现带底栏轮播(焦点图)代码
2016/03/28 Javascript
js根据手机客户端浏览器类型,判断跳转官网/手机网站多个实例代码
2016/04/30 Javascript
JS组件系列之Bootstrap table表格组件神器【二、父子表和行列调序】
2016/05/10 Javascript
详解探索 vuex 2.0 以及使用 vuejs 2.0 + vuex 2.0 构建记事本应用
2017/06/16 Javascript
解决vue处理axios post请求传参的问题
2018/03/05 Javascript
前后端如何实现登录token拦截校验详解
2018/09/03 Javascript
mpvue全局引入sass文件的方法步骤
2019/03/06 Javascript
JavaScript中0、空字符串、'0'是true还是false的知识点分享
2019/09/16 Javascript
原生js实现五子棋游戏
2020/05/28 Javascript
[15:07]lgd_OG_m2_BP
2019/09/10 DOTA
python实现马耳可夫链算法实例分析
2015/05/20 Python
Python内置函数 next的具体使用方法
2017/11/24 Python
Python多线程原理与用法实例剖析
2019/01/22 Python
Python Django框架url反向解析实现动态生成对应的url链接示例
2019/10/18 Python
python 实现多线程下载m3u8格式视频并使用fmmpeg合并
2019/11/15 Python
基于keras 模型、结构、权重保存的实现
2020/01/24 Python
Python select及selectors模块概念用法详解
2020/06/22 Python
Python常用库Numpy进行矩阵运算详解
2020/07/21 Python
Python调用JavaScript代码的方法
2020/10/27 Python
解锁canvas导出图片跨域的N种姿势小结
2019/01/24 HTML / CSS
美国开幕式潮店:Opening Ceremony
2018/02/10 全球购物
Pop In A Box英国:Funko POP搪胶公仔
2019/05/27 全球购物
GWT都有什么特性
2016/12/02 面试题
授权委托书(完整版)
2014/09/10 职场文书
2014年班组建设工作总结
2014/12/01 职场文书
2015年社区文体活动总结
2015/03/25 职场文书
总结Python常用的魔法方法
2021/05/25 Python
解决vue中provide inject的响应式监听
2022/04/19 Vue.js