用户
 找回密码
 入住 CI 中国社区
搜索
查看: 5564|回复: 3
收起左侧

[HELP] OR_LIKE 和 WHERE 同时使用的问题

[复制链接]
发表于 2015-12-29 11:27:01 | 显示全部楼层 |阅读模式
  1. foreach($Tag as $key=>$val){
  2.             //$sql .= "NewsTitle LIKE %{$val}% OR";
  3.             $this->db->like('NewsTitle',$val,'both');
  4.             
  5.             if($key == count($Tag)-1){
  6.                 $this->db->or_like('NewsTitle',$val,'both');
  7.             }
  8.             
  9.         }
  10.         $this->db->where(['NewsState'=>0]);
  11.         $this->db->where(['NewsWaste'=>0]);
  12.         $this->db->where('NewsId !=',$data['NewsId']);
复制代码



这样的写法,  $this->db->where(['NewsState'=>0]);
        $this->db->where(['NewsWaste'=>0]); 不执行了,有人遇到过此问题嘛。
 楼主| 发表于 2015-12-29 11:34:44 | 显示全部楼层
SELECT * FROM `costa_news` WHERE `NewsState` =0 AND `NewsWaste` =0 AND `NewsId` != '100' AND `NewsTitle` LIKE '%巴奴%' OR `NewsTitle` LIKE '%海底捞%' LIMIT 3

再执行顺序上不加括号就无法执行前面几个条件

SELECT * FROM `costa_news` WHERE `NewsState` =0 AND `NewsWaste` =0 AND `NewsId` != '100' AND (`NewsTitle` LIKE '%巴奴%' OR `NewsTitle` LIKE '%海底捞%') LIMIT 3

加上就可以了,但CI默认的方法貌似不加,,除了使用query还有什么好方法?
发表于 2015-12-29 16:58:10 | 显示全部楼层
我也遇到了这个问题,我用的是ci2.0 3.0  可以用查询条件组解决http://codeigniter.org.cn/user_g ... ry_builder.html#id7

评分

参与人数 1威望 +1 收起 理由
crazyci + 1 很给力!

查看全部评分

发表于 2016-5-24 16:48:32 | 显示全部楼层
好二啊。竟然要用group。老版本怎么用group啊。真二啊。

本版积分规则