现在,我可以通过在CodeIgniter中使用此单个语句从名为 cars 的表中获取所有值:
$this->db->get('cars')->results();
问题在于我想根据名为 slug 的列中的相同值选择 ONLY 行,这是一个存储的URL,例如“非常好的汽车销售”或“黑色野马在良好状态”。基本上我想找到所有重复项(但我想稍后将其扩展到名称,描述等,但我现在主要关注的是slug列)
我的数据库查询在CodeIgniter环境中应该如何只抓取重复项,我的意思是表中具有相同slug的行至少两次?
是否可以通过CI Active Record而不是通过自定义SQL查询?
答案 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);