CodeIgniter: Cómo hacer una selección (Distinct Fieldname) MySQL Query
-
19-08-2019 - |
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.
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