使用Laravel的Schema构建器有没有办法进行ORDER BY FIELD查询?

时间:2014-12-11 05:31:40

标签: mysql laravel

有没有办法进行ORDER BY FIELD查询?这就是我现在所拥有的。

$sets = DB::connection('mysql')
            ->table('sets')
            ->orderBy('type', 'asc')
            ->orderBy('releaseDate', 'asc')
            ->select('code', 'type', 'name')
            ->get();

或者我是否必须直接编写MySQL?

1 个答案:

答案 0 :(得分:1)

您可以使用DB::raw()插入ORDER BY FIELD子句:

$sets = DB::connection('mysql')
        ->table('sets')
        ->orderBy(DB::raw('FIELD(type, "Banana", "Apple", "Orange", "Peach", "Grape")'))
        ->select('code', 'type', 'name')
        ->get();

当然要注意SQL注入......要检查最终的SQL是什么,可以在运行SQL后使用Query Log

$query_log = DB::getQueryLog();