如何在 Codeigniter Active Records 中使用 'DISTINCT'?

How to use 'DISTINCT' in Codeigniter Active Records?

我有一个使用活动记录的查询。

$this->db->select('reg.users_id,reg.registration_id,reg.device_type');
$this->db->join('users as usr','usr.users_id = reg.users_id','left');
$this->db->where('usr.users_status',1);
$this->db->where('reg.users_id',91);
$query = $this->db->get('users_gcm_registration as reg');

我想获取 DISTINCT(registration_id).

我该怎么做?

就用$this->db->distinct();就行了。它将区分值...

希望它对你有用...

您可以使用 distinct as

$this->db->distinct('reg.registration_id');
$this->db->select('reg.users_id,reg.device_type');
....

但最好使用 group_by

$this->db->select('reg.users_id,reg.registration_id,reg.device_type');
$this->db->join('users as usr','usr.users_id = reg.users_id','left');
$this->db->where('usr.users_status',1);
$this->db->where('reg.users_id',91);
$this->db->group_by('reg.registration_id');// add group_by
$query = $this->db->get('users_gcm_registration as reg');

你有两种方法来完成这个

  1. 以 Codeigniter 方式
  2. SQL方式

Codeigniter 方式

您可以在活动记录查询中使用 $this->db->distinct()

$this->db->distinct();
$this->db->get('table_name');
...

在SQL方式

$query = $this->db->query("SELECT DISTINCT * FROM table_name ...");
$result = $query->result_array();
return $result;
$this->db->select('reg.users_id,DISTINCT(reg.registration_id),reg.device_type'); 
   $this->db->join('users as usr','usr.users_id = reg.users_id','left');
$this->db->where('usr.users_status',1);
$this->db->where('reg.users_id',91);
$query = $this->db->get('users_gcm_registration as reg');
   $query = $this->db->select('registration_id')
                ->distinct('registration_id')
                ->from('reg')
                ->get(); 
 return $query->result();