Laravel 利用 orderByRaw 針對欄位順序排序

Laravel 的 orderBy 雖然可以多個下來 order, 但感覺這樣的 order 也只是以字串的開頭排序,而我要的是根據裡面是否有符合我要的字串,若有則依照欄位不同排序

如:
假設搜尋 class 跟 teacher 這兩個欄位有 "明" 這個字,但是所有的搜尋結果,要以 class 優先排序,再出現 teacher 的結果。

類似:


return $result

    ->orderByRaw('CASE WHEN `class ` LIKE \'%' . $query['query'] . '%\' THEN 0 ELSE 1 END ASC, id DESC')

    ->paginate($pageNumber);

參考:
http://stackoverflow.com/questions/6243678/specific-ordering-sql-command
Order by using multiple columns and manually array field in Laravel? By Itsolutionstuff
Laravel 5 orderByRaw 绑定参数问题
http://stackoverflow.com/questions/4798000/mysql-order-by-keyword-match

留言

這個網誌中的熱門文章

[Android] 筆記 手機上測試自己的 APP

解決fatal: Not a git repository (or any of the parent directories): .git錯誤

[Android 筆記] 設定 ImageView 的圖檔來源