2014-05-04 48 views
1

我正在建立一個討論板,我正在創建一個名爲「頂級」的主題列表,該主題按照主題的「流行」排序。雄辯:疊加和添加列,然後按結果排序

我試着這樣做:

SELECT ((post_count * 2) + (like_count * 4)) as popularity_score 
FROM `topics` 
    WHERE `deleted`=0 
ORDER BY popularity_score DESC 

我將如何做到這一點的雄辯? atm沒有太多的運氣。

回答

5

你可以用DB::raw做到這一點:

DB::table('topics') 
    ->select('id', '...', DB::raw('(post_count*2) + (like_count*4) as popularity_score')) 
    ->where('deleted', '=', 0) 
    ->orderBy('popularity_score', 'asc') 
    ->get();