获取表中包含CodeIgniter中某些列中相同值的所有行

时间:2013-11-27 10:21:11

标签: php mysql sql codeigniter

现在,我可以通过在CodeIgniter中使用此单个语句从名为 cars 的表中获取所有值:

$this->db->get('cars')->results();

问题在于我想根据名为 slug 的列中的相同值选择 ONLY 行,这是一个存储的URL,例如“非常好的汽车销售”或“黑色野马在良好状态”。基本上我想找到所有重复项(但我想稍后将其扩展到名称,描述等,但我现在主要关注的是slug列)

我的数据库查询在CodeIgniter环境中应该如何只抓取重复项,我的意思是表中具有相同slug的行至少两次?

是否可以通过CI Active Record而不是通过自定义SQL查询?

1 个答案:

答案 0 :(得分:1)

首先获取重复记录的ID,然后将此结果用作子查询。

$this->db->select('`id`');
$this->db->from('cars');
$this->db->group_by('slug');
$this->db->having('count(slug) > 1');
$where_clause = $this->db->get_compiled_select();

$this->db->get('cars');
$this->db->where('`id` IN ($where_clause)', NULL, FALSE);