IFNULL (COUNT ('id'), 0) в Codeigniter - PullRequest
6 голосов
/ 09 мая 2011

Я считаю, что в этой строке в Codeigniter, использующем Active Records, есть ошибка, но я не могу понять синтаксис во второй строке с помощью IFNULL () и COUNT ()

$this->db->select('places.*, category.*')
            ->select('IFNULL(COUNT("places_reviews.place_id"), 0) AS num_reviews')
            ->from('places')
            ->join('category', 'places.category_id = category.category_id')
            ->join('places_reviews', 'places_reviews.place_id = places.id', 'left')
            ->where('places.category_id', $category_id)
            ->group_by('places.id')
            ->limit($limit, $offset)
            ->order_by($sort_by, $sort_order);

1 Ответ

17 голосов
/ 09 мая 2011

Добавить false после оператора SELECT. CodeIgniter пытается избежать оператора с помощью обратных кавычек и не знает, как это сделать правильно. false скажет, что нет.

->select('IFNULL(COUNT(`places_reviews.place_id`), 0) AS `num_reviews`', false)

РЕДАКТИРОВАТЬ : в COUNT("places_reviews.place_id") кавычки должны быть обратными чертами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...