TinkPHP 5 where 表达式

在TP5中进行数据查询时,经常要要到where的连贯操作。当where条件有多种可能性时,使用关联数组表示where条件,是比较常用的一种方式。但在官方文档中,并没有详细说明。

Where 条件表达式格式为:

$map[‘字段名’] = array(‘表达式’, ‘操作条件’);

其中 $map 是一个普通的数组变量,可以根据自己需求而命名。上述格式中的表达式实际是运算符的意义:

ThinkPHP运算符 与 SQL运算符 对照表

补充说明

#同 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);

猜你喜欢

转载自blog.csdn.net/voke_/article/details/80500668