2012-09-03 54 views
1

我有這樣如何在cakephp查詢中放置「DISTINCT」關鍵詞?

$this->Customer->setSource('customer'); 
     $this->Customer->find('first',array('fields'=>" IF(assigned_id.assigned_id is NULL, 
              CONCAT(GROUP_CONCAT(DISTINCT(`team_members`.`user_id`)),'=>TEAM')")); 

我需要的輸出代碼是這樣

SELECT IF(assigned_id.assigned_id is NULL, CONCAT(GROUP_CONCAT(DISTINCT(`team_members`.`user_id`)),'=>TEAM') FROM `ctk_customer` AS `Customer` WHERE 1 = 1 LIMIT 1 

,但我得到這個輸出

SELECT DISTINCT IF(assigned_id.assigned_id is NULL, CONCAT(GROUP_CONCAT(DISTINCT(`team_members`.`user_id`)),'=>TEAM') FROM `ctk_customer` AS `Customer` WHERE 1 = 1 LIMIT 1 
+0

你可以試着用find('all')' –

+0

我試過find('all'),find('count')。但得到錯誤的結果 – EbinPaulose

+0

'IF(assigned_id.assigned_id'你的意思是隻有一個assigned_id嗎? – tigrang

回答

2
$this->Customer->setSource('customer'); 
     $this->Customer->find('first',array('fields'=>" IF(assigned_id.assigned_id is NULL, 
              CONCAT(GROUP_CONCAT(distinct(`team_members`.`user_id`)),'=>TEAM')")); 
0

it looks like你可以做這樣的:

array(
    'conditions' => array('Model.field' => $thisValue), //array of conditions 
    'recursive' => 1, //int 
    'fields' => array('Model.field1', 'DISTINCT Model.field2'), //array of field names 
    'order' => array('Model.created', 'Model.field3 DESC'), //string or array defining order 
    'group' => array('Model.field'), //fields to GROUP BY 
    'limit' => n, //int 
    'page' => n, //int 
    'offset'=>n, //int 
    'callbacks' => true //other possible values are false, 'before', 'after' 
)