2009-03-18 3 views
34

Я пытаюсь получить количество всех уникальных значений в поле.CodeIgniter: как сделать выбор (отличное имя поля) MySQL Query

Пример SQL:

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

Как я могу сделать этот вид запроса внутри CodeIgniter?

Я знаю, что могу использовать $this->db->query() и написать свой собственный SQL-запрос, но у меня есть другие требования, которые я хочу использовать $this->db->where(). Если я использую ->query(), я должен сам написать весь запрос.

ответ

78
$record = '123'; 

$this->db->distinct(); 

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

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

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

затем

$query->num_rows(); 

должен пройти долгий путь к нему.

8

попробовать его с помощью следующего кода

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

Вы также можете запустить -> выберите ('DISTINCT `field`', FALSE) и второй параметр указывает CI не избежать первого аргумента. Со вторым параметром выход будет SELECT DISTINCT `field` вместо без второго параметра, ВЫБРАТЬ` `DISTINCT` field`

+0

лучший ответ – shox

 Смежные вопросы

  • Нет связанных вопросов^_^