2014-02-23 64 views
2

如何使用MySQL的一個要求做到這一點:Laravel Query Builder在MySQL中使用變量進行復雜選擇?

$revision = $this->Revision->where('batch', $batch)->first(); 

$revisions = $this->Revision->where('batch','>', $batch) 
->where('revisionable_type', $revision->revisionable_type) 
->where('revisionable_id', $revision->revisionable_id) 
->get(); 

$這個 - >修訂=雄辯模型;

其他人只是列。

+0

你只是想一個原始的MySQL查詢呢?有特別的原因嗎?你爲什麼需要這樣做? – Sturm

+0

我以後不打算使用$修訂版,所以我的想法是我可以讓mysql記住$修訂版並直接給我$修訂版。而且我對查詢生成器方法中的原始查詢不感興趣。 – Hontoni

+0

@duellsy與Revisionable沒有直接關係,但是ok =) – Hontoni

回答

1

我最初誤解了你的問題。你可以這樣做使用:

$sql = "SELECT * FROM revisions AS tmpa 
     INNER JOIN revisions AS tmpb 
     ON tmpb.revisionable_type = tmpa.revisionable_type 
     AND tmpb.revisionable_id = tmpa.revisionable_id 
     WHERE tmpa.batch = '$batch'"; 

DB::select(DB::raw($sql)); 
+0

如何設置$ r_type,$ r_id?我沒有他們呢! – Hontoni

+0

@Antonimo啊,我明白了。 – Sturm

+0

它看起來會工作,但再次看我的代碼,我做'批','>',$批 – Hontoni