2009-03-18 23 views
34

Sto cercando di recuperare un conteggio di tutti i valori univoci in un campo.CodeIgniter: Come eseguire una selezione (Nome campo distinto) Query MySQL

Esempio SQL:

SELECT count(distinct accessid) FROM (`accesslog`) WHERE record = '123' 

Come posso fare questo tipo di interrogazione all'interno di CodeIgniter?

So che posso usare $this->db->query() e scrivere la mia query SQL, ma ho altri requisiti che voglio usare per $this->db->where(). Se io uso ->query() anche se devo scrivere l'intera query me stesso.

risposta

78
$record = '123'; 

$this->db->distinct(); 

$this->db->select('accessid'); 

$this->db->where('record', $record); 

$query = $this->db->get('accesslog'); 

poi

$query->num_rows(); 

dovrebbe andare un lungo cammino verso di esso.

8

provarlo con il seguente codice

function fun1() 
{ 
    $this->db->select('count(DISTINCT(accessid))'); 
    $this->db->from('accesslog'); 
    $this->db->where('record =','123'); 
    $query=$this->db->get(); 
    return $query->num_rows(); 
} 
7

È inoltre possibile eseguire -> selezionare ('DISTINTO `field`', FALSE) e il secondo parametro dice CI di non sfuggire al primo argomento. Con il secondo parametro l'uscita sarebbe SELECT DISTINCT `field` invece che senza il secondo parametro, SELEZIONA` `DISTINCT` field`

+0

la risposta migliore – shox

Problemi correlati