Pregunta

Estoy tratando de recuperar un recuento de todos los valores únicos en un campo.

Ejemplo de 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 que quiero usar $ this - > db- > where () para. Si uso - > query () aunque tengo que escribir toda la consulta yo mismo.

¿Fue útil?

Solución

$record = '123';

$this->db->distinct();

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

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

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

luego

$query->num_rows();

debería recorrer un largo camino hacia él.

Otros consejos

pruébalo 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();  
}

También puede ejecutar - > select ('DISTINCT `field`', FALSE) y el segundo parámetro le dice a CI que no escape al primer argumento. Con el segundo parámetro, la salida sería SELECT DISTINCT `field` en lugar de sin el segundo parámetro, SELECT` DISTINCT` `field`

Dado que el recuento es el valor final previsto, en su consulta pase

$this->db->distinct();
$this->db->select('accessid');
$this->db->where('record', $record); 
$query = $this->db->get()->result_array();
return count($query);

Cuenta el valor reajustado

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top