关联数组变成了 Codeigniter 中的 where OR 子句
Associative array turned into where OR clause in Codeigniter
使用 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 ...).
- 问题:这是获取所有 content_id 的正确查询吗?
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 子句实际上是 where 之间有嵌套的 OR 并且它填充了关联数组 ($content_ids)?
感谢您的回答。
编辑:我找到了一个解决方案:where_in 命令完全符合我的需要。
您可以使用 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();
使用 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 ...).
- 问题:这是获取所有 content_id 的正确查询吗?
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 子句实际上是 where 之间有嵌套的 OR 并且它填充了关联数组 ($content_ids)?
感谢您的回答。
编辑:我找到了一个解决方案:where_in 命令完全符合我的需要。
您可以使用 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();