2009-03-18 18 views
34

Estoy intentando recuperar un recuento de todos los valores únicos en un campo.CodeIgniter: cómo hacer un Select (Fieldname distintas) MySQL Query

Ejemplo SQL:

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

¿Cómo puedo hacer este tipo de consulta dentro de CodeIgniter?

Sé que puedo usar $this->db->query() y escribir mi propia consulta SQL, pero tengo otros requisitos para los que deseo usar $this->db->where(). Si uso ->query(), tengo que escribir toda la consulta yo mismo.

Respuesta

78
$record = '123'; 

$this->db->distinct(); 

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

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

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

continuación

$query->num_rows(); 

debe recorrer un largo camino hacia ella.

8

lo pruebe con el siguiente código

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

También puede ejecutar -> seleccionar ('DISTINCT `field`', FALSO) y el segundo parámetro indica CI no escapar el primer argumento. Con el segundo parámetro de la salida sería SELECT DISTINCT `field` en lugar de sin el segundo parámetro, seleccione` `DISTINCT` field`

+0

la mejor respuesta – shox