8

我有一张这样的桌子

name|subjects|location
......................     
BUET|CSE|Dhaka
BUET|EEE|Dhaka
RUET|CE |Rajshahi
RU  |CE |Rajshahi

这里所有的行都是不同的。如果我使用

 $this->db->select('*') and $this->db->distinct() 

它会选择 BUET 的所有行,但我只想要这样

name|subjects|location
......................     
BUET|CSE|Dhaka
RUET|CE |Rajshahi
RU  |CE |Rajshahi

这意味着只有第一列必须是不同的并像往常一样选择所有列。如果我使用 $this->db->select('name') 和$this->db->distinct(). 那么其他列呢?

由于我的原始表有很多列,所以我想使用$this->db->select('*'). 我认为 $this->db->distinct()不将任何列作为参数。它根据选择区分结果。我怎样才能做到这一点?

4

5 回答 5

12

像这样试试

$this->db->select('DISTINCT `name`'); //You may use $this->db->distinct('name');  
$this->db->select('*');

按名称选择不同的值。您的 SELECT 拼写错误,可能是打字错误。您也可以使用 GROUP BY 之类的

$this->db->select('*');
$this->db->group_by('name');
于 2013-06-13T04:30:30.310 回答
3
$this->db->select('*');
        $this->db->group_by('column_name');
        $this->db->from('tbl_name');
        $query = $this->db->get();
        return $query->result();

尝试这个

于 2017-04-17T09:44:59.317 回答
2

您应该使用 group_by 代替 distinct。

因为 distinct 将返回唯一的行。但是要逐行拥有唯一的列,您应该分组。

希望这可以帮助。

于 2013-06-13T04:33:31.267 回答
1
$this->db->select('column names');
$this->db->distinct();
$query = $this->db->get('table name');
$query->result();
于 2014-08-12T11:20:51.200 回答
0
   $this->db->select('job,id');
   $this->db->group_by('job');
   $query= $this->db->get('technicals')->result_array();
   if(!empty($query)){
       return $query;
   }else{
       return false;
   }
于 2017-03-31T23:19:14.570 回答