|
表字段 uid,name, tags,status
这里需要用到name和tags的模糊查询
status的查询
$this->db->where('uid ', '1');
$this->db->or_where('status', '5');
$this->db->like('name', 'na');
$this->db->or_like('tag', 'na');
这样的sql是
where uid=1 and status=5 and ( name like '%na%' or tag like '%na%' )
只是这两个条件的话,没有问题.但如果加多了一个and的条件,这种写法就不行了,如
$this->db->where('uid ', '1');
$this->db->where('status', '1');
$this->db->or_where('status', '5');
$this->db->like('name', 'na');
$this->db->or_like('tag', 'na');
这样构成的sql语句是
where uid=1 and status=1 or status=5 and ( name like '%na%' or tag like '%na%' )
这样查询sql 自动识别成了 where (uid=1 and status=1) or status=5 and ( name like '%na%' or tag like '%na%' )
会查出 库里status=5的值 uid判断就失去作用
想要的到的结果应该是
where uid=1 and (status=1 or status=5) and ( name like '%na%' or tag like '%na%' )
框架里 也没又发现什么方法能够解决
|
|
|