crazyci 发表于 2015-12-29 11:27:01

OR_LIKE 和 WHERE 同时使用的问题

foreach($Tag as $key=>$val){
            //$sql .= "NewsTitle LIKE %{$val}% OR";
            $this->db->like('NewsTitle',$val,'both');
            
            if($key == count($Tag)-1){
                $this->db->or_like('NewsTitle',$val,'both');
            }
            
      }
      $this->db->where(['NewsState'=>0]);
      $this->db->where(['NewsWaste'=>0]);
      $this->db->where('NewsId !=',$data['NewsId']);


这样的写法,$this->db->where(['NewsState'=>0]);
      $this->db->where(['NewsWaste'=>0]); 不执行了,有人遇到过此问题嘛。

crazyci 发表于 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_guide/database/query_builder.html#id7

vini123 发表于 2016-5-24 16:48:32

好二啊。竟然要用group。老版本怎么用group啊。真二啊。
页: [1]
查看完整版本: OR_LIKE 和 WHERE 同时使用的问题