ThinkPHP Where 条件中使用表达式

摘要:
其中条件表达式格式为:$map['field-name']=array;1$map['field name']=数组;其中,$map是一个通用数组变量,可以根据需要命名。上述格式中的表达式实际上是一个运算符:ThinkPHP运算符和SQL运算符比较表TP运算符SQL运算符示例实际查询条件eq=$map['id']=array;等价于:$map['id']=100;neq!1xor1=0exp综合表达式$map['id']=数组$map['id']=array;注意:与SQL一样,ThinkPHP运算符不区分大小写,eq与eq相同。exp的操作条件不会被视为字符串。您可以使用任何SQL支持的语法,包括使用函数和字段名。

https://www.jiloc.com/43040.html

前面我们介绍了,ThinkPHP View视图 模板使用实例总结,下面我们总结一下ThinkPHP中mysql数据库查询时Where条件表达式的写法。

Where 条件表达式格式为:

$map['字段名'] = array('表达式', '操作条件');
1
$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 < 100
elt<=$map[‘id’] = array(‘elt’,100);id <= 100
likelike$map<‘username’> = array(‘like’,’Admin%’);username like ‘Admin%’
betweenbetween and$map[‘id’] = array(‘between’,’1,8′);id BETWEEN 1 AND 8
not betweennot between and$map[‘id’] = array(‘not between’,’1,8′);id NOT BETWEEN 1 AND 8
inin$map[‘id’] = array(‘in’,’1,5,8′);id in(1,5,8)
not innot 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 < 10)
oror$map[‘id’] = array(array(‘gt’,3),array(‘lt’,10), ‘or’);(id > 3) OR (id < 10)
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'));
    1
    2
    $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);
1
2
3
4
5
6
7
8
$Dao=M("Article");
// 构建 save 的数据数组,文章点击数+1
$data['id']=10;
$data['counter']=array('exp','counter+1');
// 根据条件保存修改的数据
$User->save($data);

免责声明:文章转载自《ThinkPHP Where 条件中使用表达式》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇10个 NPM 使用技巧单进程单线程的Redis如何能够高并发下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

【Python从入门到精通】(十)Python流程控制的关键字该怎么用呢?【收藏下来,常看常新】

您好,我是码农飞哥,感谢您阅读本文,欢迎一键三连哦。这篇文章主要介绍Python中流程控制的关键字的使用,涉及到if else,for,while等关键字 干货满满,建议收藏,需要用到时常看看。 小伙伴们如有问题及需要,欢迎踊跃留言哦~ ~ ~。 前言 有句话说程序就是由流程+数据结构组成。任何程序都是如此。前面花了好几个篇幅来介绍Python中的各种数据...

c语言运算符

1.运算符概述 运算符是一种编译器执行特定的数学或逻辑操作的符号。C语言提供了以下类型的运算符: 算术运算符 关系运算符 逻辑运算符 位运算符 赋值运算符 条件运算符 其他运算符 2.算术运算符 算术运算符分为单目运算符和双目运算符,单目运算符表示只需要一个操作数,双目运算符需要两个操作数。 2.1 双目算术运算符 1)+ :加法,把两个操作数相加...

C#条件运算符(?:)

一、C#条件运算符(?:) 条件运算符(?:),有时也称为三元操作符“?:”。它是根据布尔型表达式的值返回?后面的两个值中的一个。如果条件为True,则计算第一个表达式并以它的计算结果为准;如果条件为False,则计算第二个表达式并以它的计算结果为准。 例如: b ? x : y形式的条件表达式。首先计算条件b,如果b为True,则计算x,x自动成为运算...

MySQL之增删改查

前言:以下是MySQL最基本的增删改查语句,很多IT工作者都必须要会的命令,也是IT行业面试最常考的知识点,由于是入门级基础命令,所有所有操作都建立在单表上,未涉及多表操作。 前提:在进行“增删改查”的操作之前,先建立一个包含数据表student的数据库(具体操作可以见MySQL之最基本命令): 1、“增”——添加数据 1.1 为表中所有字段添加数据 1...

spring data jpa的动态查询封装(转)

最近使用spring data jpa做了两个项目,对于动态查询的不友好做了个类似hibernate的封装,记录也分享下 首先定义一个所有条件的容器,继承Specification Java代码   /**   * 定义一个查询条件容器   * @author lee   *   * @param <T>   */   public cl...

wireshark 基础,颜色规则,过滤条件使用与多条过滤

关于抓到的通讯包的颜色,黑色是坏包,灰色是tcp的开始和结束的包,等等 打开wireshark,最好管理员权限,否则可能会有问题  选择网络接口,这里用的wifi,所以只有WLAN有信号在动  点击表达式,这是汉化后的版本  我需要ip目的地址为*.*.*.*的包,搜索中输入ip.dst,另外ip.src,上面找到ipv4里面的条目即可,关系选择等于...