Codeigniter DB Query与where,or,和..等

时间:2012-11-18 10:14:46

标签: php mysql codeigniter activerecord

我查询下面的条件(减去select,from等)

$this->db->where('show_year', $yyyy);
$this->db->or_where('idn', $idn);
$this->db->or_like('post_slug', $idn);

形成

SELECT * FROM (`nyb_articles`) 
WHERE `show_year` = '2009' 
OR `idn` = 'the' 
AND `post_slug` LIKE '%the%'

但是我希望它更像是

SELECT * FROM (`nyb_articles`) 
WHERE `show_year` = '2009' 
AND (`idn` = 'the' OR `post_slug` LIKE '%the%')

我的问题是我不确定CI的活动记录是否支持这一概念,如果确实如此,我将如何处理它,因为我无法在文档中的任何地方找到它的概念。无论我如何更改likeor_likewhereor_where,我甚至无法修改类似内容。所以任何人都有任何想法?如果可能的话,我宁愿远离原始查询,但如果我必须准备一个并按这样做,我会,只是不愿意。

1 个答案:

答案 0 :(得分:2)

你试过这个吗?

SELECT * FROM (`nyb_articles`) 
WHERE `show_year` = '2009' AND `idn` = 'the' 
OR `show_year`='2009' AND `post_slug` LIKE '%the%'

我认为以下内容会产生上述表达式:

$this->db->select(...)->from(...)->
where("show_year","2009")->where("idn","the")->
or_where("show_year","2009")->like("post_slug","%the%")