今天在tp中遇到一個問題,可能這並不算難的問題,但是我還是分享一下
以下是tp手冊里面查詢or的方式
$User = M("User"); // 實例化User對象
$where['uid'] = $login_uid;
$where['to_uid'] = $login_uid;
$where['_logic'] = 'OR';
// 把查詢條件傳入查詢方法
$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同時使用的方式