2014-02-02 5 views
0

В CakePHP Я пытаюсь сделать так, чтобы я мог подсчитать, сколько экземпляров есть (в данном случае searchterm), что я могу выбрать этот термин только в том случае, если имеется более 10 экземпляров.CakePHP SQL Where Count IS

Я попытался это:

$results = $this->Search->find('all', 
      array('fields' => array('Search.searchterm'), 

       'conditions' => array(


        array('Search.searchterm LIKE' => $this->request->query['term'] . '%'), 
        array('count(Search.searchterm)' => '10'), 

      ), 

       'group' => array('Search.searchterm'), 
       'limit' => 15, 

    )); 

Таким образом, в этом примере я пытаюсь выбрать все условия поиска, где Есть 10 случаев, но я не могу заставить его работать.

Возможно ли это?

ответ

0

сделать find('count') вместо:

$results = $this->Search->find('count', 
    'conditions' => array(
     array('Search.searchterm LIKE' => $this->request->query['term'] . '%'), 
    ), 
)); 

And read the manual about the finds.

+0

Thankyou. Единственное, что это используется в ajax для autosuggest, поэтому он действительно должен быть в одном запросе. Я хочу сделать больше, чем просто считать, поскольку я хочу получить записи, где count больше 10. – user2572639

+0

Вам нужно сделать подзапрос, а затем в любом случае или, что гораздо лучше, кешировать подсчеты в таблице. Предполагая, что я понимаю вас правильно. Ищите «counterCache» в документации. – burzum