`
cuiyadll
  • 浏览: 202016 次
文章分类
社区版块
存档分类
最新评论

ThinkPHP 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 < 100
elt <= $map['id'] = array('elt',100); id <= 100
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 < 10)
or or $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'));
    

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 条件中常用表达式示例(详解)

    本文将详细解析在ThinkPHP中`Where`条件表达式的使用方法,以及与SQL运算符的对应关系。 `Where`条件表达式的基本格式如下: ```php $map['字段名'] = array('表达式', '操作条件'); ``` 在这个结构中,`$map`是一...

    Thinkphp使用mongodb数据库实现多条件查询方法

    在Thinkphp中使用MongoDB进行多条件查询时,需要对框架提供的驱动进行一定的修改以适应MongoDB的查询方式。 在Thinkphp中实现多条件查询时,可以使用框架提供的查询构建器(Query Builder),但是当涉及到MongoDB的...

    ThinkPHP中where()使用方法详解

    where方法的用法是ThinkPHP查询语言的精髓,也是ThinkPHP ORM的重要组成部分和亮点所在,可以完成包括普通查询、表达式查询、快捷查询、区间查询、组合查询在内的查询操作。where方法的参数支持字符串和数组,虽然也...

    thinkphp3.2框架中where条件查询用法总结

    在ThinkPHP3.2框架中,`where`条件查询是进行数据库操作时不可或缺的一部分,它允许开发者构建复杂的查询条件来筛选数据。以下是对ThinkPHP3.2中`where`条件查询用法的详细说明: 1. **基本条件查询**: - `EQ`...

    ThinkPHP CURD方法之where方法详解

    总之,ThinkPHP的where方法是实现复杂查询逻辑的强大工具,它支持多种参数形式,并允许使用灵活的查询表达式来满足开发中对数据检索的各种需求。开发者需要根据实际情况选择合适的参数形式和查询表达式,以确保...

    php 表达式where查询

    PHP 表达式 WHERE 查询是一种灵活且强大的查询方式,它允许开发者使用各种查询语法来构建复杂的查询条件。本文将详细介绍 PHP 表达式 WHERE 查询的使用格式、支持的查询语法和示例。 使用格式 ---------- PHP ...

    tp5.1 框架查询表达式用法详解

    查询表达式支持大部分的SQL查询语法,也是ThinkPHP查询语言的精髓,查询表达式的使用格式: where('字段名','表达式','查询条件'); whereOr('字段名','表达式','查询条件'); 5.1还支持新的查询方法 whereField('...

    thinkphp3.1.2学习笔记

    2. **正常赋值更新**:可以通过直接赋值给数据对象或者使用`where()`和`save()`组合更新指定条件的数据。 3. **修改特定字段**:使用`setField()`方法可以单独更新某个字段的值。 4. **系统函数**:`setInc()`和`...

    thinkPHP的表达式查询用法详解

    本文将详细解析ThinkPHP表达式查询的用法,以及如何在where条件和模板标签中使用它们。 1. **表达式查询的基本概念** 表达式查询是ThinkPHP框架特有的功能,它主要用于构造查询、更新和删除操作的where条件。这些...

    thinkphp普通查询与表达式查询实例分析

    本文将重点分析ThinkPHP中的普通查询与表达式查询。 一、普通查询方式 1. 字符串方式 在ThinkPHP中,我们可以使用字符串方式来执行查询。例如,以下代码会查找性别为0且用户名为'gege'的记录: ```php $arr = $m-&gt;...

    ThinkPHP3.1查询语言详解

    ThinkPHP3.1的查询语言为开发者提供了简洁、强大的数据查询接口,通过数组和对象方式设定查询条件,结合查询表达式,可以方便地完成各种复杂的数据查询操作。同时,考虑到安全问题,推荐使用数组方式并配合预处理来...

    ThinkPHP6.0完全开发手册-02181028.pdf

    ThinkPHP6.0提供了丰富的数据库操作功能,包括数据库连接、分布式数据库、查询构造器、查询数据、添加数据、更新数据、删除数据、查询表达式、链式操作、where、table、alias、field、strict、limit、page、order、...

    ThinkPHP 2.0开发技巧

    这里的`where`方法接受一个数组作为参数,数组中的键是字段名,值是条件,通过这种方式可以灵活地构建查询条件。 1.7针对主键的几个特殊用法 ThinkPHP提供了针对主键的一些特殊操作,比如`find`方法用于根据主键...

    weiphp5.0 cms审计之exp表达式注入 - 先知社区1

    该方法使用了ThinkPHP框架的Db类来执行数据库查询,然而,在wp_where方法中存在一个EXP表达式注入漏洞。 EXP表达式注入漏洞是指攻击者可以inject恶意的EXP表达式,导致数据库执行恶意查询,泄露敏感信息或执行任意...

    thinkphp查询,3.X 5.0方法(亲试可行)

    通过使用特定的表达式,开发者可以构建复杂的查询条件,例如`$map['id'] = array('eq',100);`等同于`$map['id'] = 100;`,表示查询id等于100的记录。以下是一些常见的查询表达式: - EQ:等于(=) - NEQ:不等于...

Global site tag (gtag.js) - Google Analytics