|  RSS订阅  |  加入收藏

ThinkPHP使用数组条件进行查询之同一字段多个条件

利用数组进行多字段多条件的查询,能比较快速的检索所需要的数据。同时用数组构造的条件能让代码更加具有可读和可修改性。
摘要

对同一表中多个字段的查询,在thinkPHP中使用数组条件进行查询,有三个好处,第一可以批量设置多个查询字段,第二可以设置多个查询条件,第三结构化你的代码,让代码更具可读性。数组条件查询有简单数组查询、数组表达式查询,一般使用$map保存数组条件。




简单数组条件查询

例如需要查询user表中用户名(username)为“xifengli”并且状态(status)为正常(1)的数据。

$map['username'] = 'xifengli';
$map['status'] = 1;

这样就写好了数组。代入where条件。

Db::name('user')->where($map)->select();


数组表达式条件查询

例如需要查询user表中用户名(username)中包含“xifengli”字符的并且状态为不在黑名单(0)的数据的数据

$map['username'] = ['like','%xifengli%'];
$map['status'] = ['<>',0];

上面两种属于基础类型,描述的是多个字段的并列条件。现在的问题是同一字段的并列条件和或者条件如何处理,也就是本文标题中的同一字段多个条件。


同一字段多条件表达式查询

例如现在需要查询用户表中状态为不在黑名单并且状态不为临时(2)的用户。

$map['status'] = array(['<>',0],['<>',2],'and');

又例如现在需要查询用户表中状态为不在黑名单或者状态为正常(1)的用户。

$map['status'] = array(['<>',0],['=',1],'or');


好了,上面三种情况就是ThinkPHP常用数组条件查询。

如文章有用,给个赞助吧
  PHP    ThinkPHP    数组    
转载请注明出处,未经许可禁止商用!
发表评论
*依据《网络安全法》规定,您需实名认证后才能评论!

西枫里人
@梁兴健:确实是有点严格,也是应网络安全的要求而定,我这个站的实名还算好,只要绑个手机号就行。 PS.欢迎来访。工作日第一天,给你拜个晚年,新年快乐!

梁兴健
评论要登录,还要实名,有点严格