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');

or

不同字段 or

$map['id'] = '8';

$map['pid'] = '10';

$map['_logic'] = 'OR';

'id'=8 AND 'pid'=10

补充说明

· 同 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 的数据数组,文章PV数+1

$data['id'] = 10;$data['counter'] = array('exp','counter+1');

// 依据条件保存改动的数据

$User->save($data);

ThinkPHP Where 条件中使用表达式

原文出自: http://www.cnblogs.com/martin1009/archive/2012/08/24/2653718.html

ThinkPHP运算符 与 SQL运算符 对比表的更多相关文章

  1. SQL运算符

    SQL运算符实例代码教程 - 运算符是一个保留字或字符,主要用于在SQL语句的WHERE子句来执行,比较和算术运算等操作.  http://www.yiibai.com/sql/sql_operato ...

  2. (四)PL/SQL运算符

    运算符是一个符号,告诉编译器执行特定的数学或逻辑操作. PL/SQL语言有丰富的内置运算符,运算符提供的以下几种类型: 1.算术运算符 2.关系运算符 3.比较运算符 4.逻辑运算符 5.字符串运算符 ...

  3. ThinkPHP运算符与PHP运算符对照表

    ThinkPHP运算符与PHP运算符对照表 ThinkPHP标签 说明及对应PHP标签 备注 eq 等于(=)(==:用于模板判断时) 可用于查询条件与模板判断 neq 不等于(!=) 可用于查询条件 ...

  4. [SQL基础教程] 2-2 算数运算符和比较运算符

    [SQL基础教程] 2-2 算数运算符和比较运算符 算数运算符 四则运算 运算符 含义 + - * / SELECT col_1*2 AS col_new FROM table; 注意 所有包含NUL ...

  5. SQL Server数据类型int、bigint、smallint、tinyint对比表

    SQL Server数据类型int.bigint.smallint.tinyint对比表 数据类型 范围 存储 bigint -2^63 (-9,223,372,036,854,775,808) 到 ...

  6. SQL基础教程(第2版)第2章 查询基础:2-2 算数运算符和比较运算符&2-3 逻辑运算符

    ● 包含NULL的运算,其结果也是NULL. ● 判断是否为NULL,需要使用IS NULL或者IS NOT NULL运算符. ■算术运算符 ■需要注意NULL ■比较运算符 这些比较运算符可以对字符 ...

  7. SQL 多个表之间联合查询

    非常少用join,这次学学,并备忘两篇文章! 转自:http://hcx-2008.javaeye.com/blog/285661 连接查询 通过连接运算符能够实现多个表查询.连接是关系数据库模型的主 ...

  8. shell之算数运算符、逻辑运算符、关系运算符、布尔运算符、文件测试运算符

    注意事项: (1)bash不支持简单的数学运算,但是可以通过其他命令来实现,例如 awk 和 expr,expr 最常用: (2)完整的表达式要被 ` ` 包含,注意这个字符不是常用的单引号,在 Es ...

  9. ORACLE数据库对比表结构

    有时候会有某种需求:需要对比两个表的表结构是否一致,有时候甚至是整个数据库所有表的表结构对比.......表结构对比无非就是字段名.字段类型.字段数据类型.以及字段的顺序的对比.如果需要对比表结构,可 ...

随机推荐

  1. 隐式意图-activity

    Intent intent = new Intent(); intent.setAction(Intent.ACTION_VIEW);//设置动作 intent.setData(Uri.parse(& ...

  2. UItableViewCell上的button点击无响应的办法

    由于IOS7中添加了滑动后出现编辑按钮的操作,所以使用scrollView来处理,UITableViewCellScrollView有对触摸的相应处理,导致按钮的点击效果被屏蔽了,但是点击事件还是在的 ...

  3. BZOJ 4145: [AMPPZ2014]The Prices( 状压dp + 01背包 )

    我自己只能想出O( n*3^m )的做法....肯定会T O( nm*2^m )做法: dp( x, s ) 表示考虑了前 x 个商店, 已买的东西的集合为s. 考虑转移 : 先假设我们到第x个商店去 ...

  4. JS 2016-09-30T22:04:27.5220743+08:00 转换为日期

    1.转换代码 new Date(item.CreatedDate).Format("yyyy-MM-dd hh:mm") 2.需要拓展的方法 // 对Date的扩展,将 Date ...

  5. 双卡双待支持双电池 夏新N808深度评测_夏新手机评测-泡泡网

    双卡双待支持双电池 夏新N808深度评测_夏新手机评测-泡泡网 双卡双待支持双电池 夏新N808深度评测

  6. ORA-01093: ALTER DATABASE CLOSE only permitted with no sessions connected解决方法

    在进行物理主备库角色转换的时候遇到ORA-01093错误 SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY; ALTER ...

  7. log翻硬币

    若果有一组硬币,(假定有十个),每一个硬币仅仅有两个面,正面用以表示.反面用零表示. 给定目标(初始状态)1111100000 正正正正正反反反反反 (目标状态)   1000011101 正反反反反 ...

  8. PHP - 递归函数

    /** * factorial($num) 计算阶乘 * @param string $num * @return string $total */ function factorial($num) ...

  9. vim: 搭建vim看代码的环境

    使用 vim + ctags + cscope + taglist 阅读源码  http://my.oschina.net/u/554995/blog/59927 vim tab变空格 http:// ...

  10. VDI转vmdk(VirtualBox与VMware硬盘格式转换)[转]

    VirtualBox用了一段时间,感觉没想像中那么的好.虽然设置里可以分配多CPU,但是分配多CPU后经常系统挂掉.整体感觉不够稳定,但它也有好处就是开源免费.但经常挂机总不能一直使用它,索性转到Vm ...