php 如何在 Codeigniter Active Records 中使用“DISTINCT”?

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/37834955/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-26 01:24:30  来源:igfitidea点击:

How to use 'DISTINCT' in Codeigniter Active Records?

phpactiverecordcodeigniter-2

提问by Saswat

I have a query using 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');

I want to fetch DISTINCT(registration_id).

我想取DISTINCT(registration_id)

How can I do that?

我怎样才能做到这一点?

回答by Saty

You can use distinct as

您可以使用不同的作为

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

But better use group_by

不过更好用 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');

回答by Saswat

Just use $this->db->distinct();That's it. It will distinct the value...

只需使用$this->db->distinct();就可以了。它将区分价值...

Hope it works fine for you...

希望它对你有用...

回答by Abdulla Nilam

You have two way to fullfil this

你有两种方法来完成这个

  1. In Codeigniter way
  2. In SQL way
  1. 以 Codeigniter 方式
  2. 以 SQL 方式


Codeigniter way

Codeigniter方式

You can use $this->db->distinct()in your active record query.

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

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

In SQL way

以 SQL 方式

$query = $this->db->query("SELECT DISTINCT * FROM table_name ...");
$result = $query->result_array();
return $result;

回答by Shibon

$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');

回答by Avigit.M

   $query = $this->db->select('registration_id')
                ->distinct('registration_id')
                ->from('reg')
                ->get(); 
 return $query->result();