0

次のSQLを雄弁に変換する必要があります

select * from medias order by likes/views DESC, views ASC

結果にページネーションを使用する必要があるため、雄弁を好みます。

私の他のSQLクエリのいくつかは

$media_list = Media::order_by('likes', 'desc')->paginate($per_page);

私は試した

$media_list = Media::order_by('likes/views', 'desc')->paginate($per_page);

しかし、それはエラーを出します

SQLSTATE[42S22]: Column not found: 1054 Unknown column 'likes/views' in 'order clause'
SQL: SELECT * FROM `medias` ORDER BY `likes/views` DESC LIMIT 20 OFFSET 0

誰でもこれを修正する方法を知っていますか?

4

1 に答える 1

1

,代わりに試してください/

$media_list = Media::order_by('likes,views', 'desc')->paginate($per_page);

また

$media_list = Media::order_by('likes`,`views', 'desc')->paginate($per_page);

また、これはlaravelで行う標準的な方法です

$media_list = Media::order_by('likes', 'desc')->orderBy('views', 'desc')->paginate($per_page);

$media_list = DB::table('medias')
    ->select(DB::raw('(likes/views) AS resultant'))
    ->order_by('resultant', 'desc')->orderBy('views', 'desc')
    ->get();
于 2013-08-04T04:21:57.483 に答える