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
How to use 'DISTINCT' in Codeigniter Active Records?
提问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
你有两种方法来完成这个
- In Codeigniter way
- In SQL way
- 以 Codeigniter 方式
- 以 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();