2013-09-27 2 views
-3

내 웹 사이트에서 가장 많이 사용되는 5 가지 쿼리를 얻기 위해 데이터베이스에 대한 SQL 쿼리가 있습니다.CakePHP에 대한 SQL 쿼리

SELECT query, COUNT(query) AS cnt 
FROM search_queries 
GROUP BY query 
ORDER BY cnt DESC 
LIMIT 5 

이것은 phpmyadmin에서 사용할 때 작동하며, 가장 많이 사용되는 5 가지 질문을 보여줍니다. 이제는 순수한 CakePHP 형식으로 변환하여 내 웹 사이트 ($ this-> find() 사용)에 포함시킬 수 있습니다. 가장 쉬운 방법은 무엇입니까?

감사합니다.

+0

문서를 읽으려고 했습니까? http://book.cakephp.org/2.0/en/models/retrieving-your-data.html –

+0

COUNT (*)로 충분합니다. – mark

답변

0

당신이 정확히 같은 쿼리를 생성합니다

$this->Query->virtualFields['cnt'] = 'COUNT(query)'; 
$mostUsedQueries = $this->Query->find(
    'all', 
    array(
     'fields' => array('query', 'cnt'), 
     'group' => 'query', 
     'order' => array('cnt' => 'DESC'), 
     'limit' => 5 
    ) 
); 

을 사용할 수 있습니다 당신이 게시했습니다

+0

'주문'방향을 놓쳤습니다. ' 'order'=> array ('cnt'=> 'DESC')'와 'limit'; ' 'limit'=> 5' – thaJeztah

+0

예, 제가 고마워했습니다. – arilia

0

find()을 사용 하시겠습니까? 쿼리를 준비 할 때 query() 또는 fetchAll() 메서드를 사용할 수 있습니다.

여기 봐 :

http://book.cakephp.org/2.0/en/models/retrieving-your-data.html은 어쩌면 당신은 이러한 유형의 솔루션에 관심이없는, 그냥 경우 여기를 걸었습니다 당신은 당신이 이런 식으로 그것을 할 수 있습니다 모른다. 당신은 TU 당신이 Query라는 이름의 모델과 컨트롤러에 QueriesController

라는 이름의 컨트롤러를 생성해야 '순수 CakePHP의'를 사용하려면