TP框架中同时使用“or”和“and”

Posted 大灰狼~彦

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TP框架中同时使用“or”和“and”相关的知识,希望对你有一定的参考价值。

今天在tp中遇到一个问题,可能这并不算难的问题,但是我还是分享一下

以下是tp手册里面查询or的方式

  1. $User = M("User"); // 实例化User对象
  2. $where[‘uid‘] = $login_uid;
  3. $where[‘to_uid‘] = $login_uid;
  4. $where[‘_logic‘] = ‘OR‘;
  5. // 把查询条件传入查询方法
  6. $User->where($where)->select();

 

这个方式可以很顺利的将自己所需要的条件查出来

现在在下面在加一个条件

$where[‘is_read‘] = [‘eq‘,$is_read];
$where[‘status‘] = [‘eq‘,1];

这两个条件相当是and

这两个条件加上上面的“or”条件一起查 相信很多人都会觉得这样写就可以查出自己想要的效果了
刚开始我也是这么觉得,但是查出来的效果并不是正确的,因为条件多了几个


最后我找到了这一种方式解决这个问题
$where[‘uid|to_uid‘] = $login_uid;
$where[‘is_read‘] = [‘eq‘,$is_read];
$where[‘status‘] = [‘eq‘,1];


原生的语句就是:SELECT * FROM 表明 WHERE ( 字段 = 条件 OR 字段 = 条件 ) AND 字段 = 条件 

以上就是or和and同时使用的方式
 

 

 

 

以上是关于TP框架中同时使用“or”和“and”的主要内容,如果未能解决你的问题,请参考以下文章

sql中同时使用and和or运算符

在TP框架中,使用原生SQL有啥弊端

sql语句中and和or怎么同时使用

Thinkphp 查询条件 and 和 or同时使用即复合查询

ThinkPHP 中 where条件 or,and 同时使用

Thinkphp 查询条件 and 和 or同时使用即复合查询