关联数组转换为Codeigniter中的OR子句

时间:2015-06-16 07:32:46

标签: php mysql codeigniter associative-array

使用CI我正在尝试使用三个参数设置查询:user_id,content_type和content_id,其中content_id是ID数组。

所以我需要想起这样的事情:

SELECT name FROM content WHERE user_id = 2 AND content_type = file AND (content_id = 4 OR content_id = 5 OR content_id = 7 ...).
  1. 问题:获取所有content_ids是正确的查询吗?
  2. CI是否具有我可以说的任何功能

        $this->db->select('name');
        $this->db->from('content');
        $this->db->where('user_id', $user_id);
        $this->db->where('content_ids', $content_ids);
        $this->db->where('content_type', $content_type);
    

    只是因为中间where子句实际上是中间嵌套OR并且填充了关联数组($ content_ids)?

  3. 感谢您的回答。

    编辑:我找到了一个解决方案:where_in命令完全符合我的需要。

1 个答案:

答案 0 :(得分:4)

您可以使用 IN 子句替换多个 OR 条件

因此,您在Active Records中的查询看起来像

$content_ids = array(4,5,7);
$where = array('user_id' => $user_id,'content_type' => $content_type);
$this->db->select('name');
$this->db->from('content');
$this->db->where($where);//created array of where clause
$this->db->where_in('content_type', $content_ids);
return $this->db->get()->result_array();