2013-09-27 58 views
-3

我對我的數據庫有一個SQL查詢以獲得我網站中最受歡迎的5個查詢。對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

如果你想塗用「純CakePHP的」,你必須創建一個名爲Query模式和在你的控制器命名爲QueriesController

控制器,你可以使用

$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'; ''限制'=> 5' – thaJeztah

+0

是的,我編輯了感謝 – arilia