2013-04-01 24 views
2

我想在下面Laravel運行代碼 $帖= DB ::表( 'RMM')問號在Laravel查詢發生

 ->select(array('message', DB::raw('COUNT(message) as number'), DB::raw('rmm.receivedTime as time'))) 

     ->join('rcs', 'rmm.smsCid', '=', 'rcs.smsCid', 'INNER') 

     ->where(DB::raw('rcs.status =1 and rmm.receivedTime > \'2012-12-26\' and rmm.receivedTime LIKE \'2013-04-01\' and length(\'message\') >\'3\' ')) 

     ->group_by('message') 

     ->get(); 

,並得到如下

錯誤代碼

SQLSTATE [42000]:語法錯誤或訪問衝突:1064您的SQL語法錯誤;檢查與您的MySQL服務器版本相對應的手冊,以便在''附近使用正確的語法'? GROUP BY message「位於第1行

SQL: SELECT `message`, COUNT(message) as number, rmm.receivedTime as time FROM `rmm` INNER JOIN `rcs` ON `rmm`.`smsCid` = `rcs`.`smsCid` WHERE rcs.status =1 and rmm.receivedTime > '2012-12-26' and rmm.receivedTime LIKE '2013-04-01' and length('message') >'3' ? GROUP BY `message` 

Bindings: array (
    0 => NULL, 
) 

不知它產生?上查詢;如果我解決了這個問題,我相信它會起作用嗎?

回答

1

嘗試raw_where()

->raw_where("rcs.status = 1 AND rmm.receivedTime > '2012-12-26' AND rmm.receivedTime LIKE '2013-04-01' AND length('message') > 3") 
+0

是的,但我只是想檢查消息的長度,您查詢檢查整個DB的長度::原料 –

+0

你檢查原始查詢?它必須工作:/ – aykut

+0

它的工作原理,但你的查詢檢查括號中整個DB :: Raw-attention的長度,我只想檢查消息長度 –