我想构建一个按特定字段长度排序数据的查询。我需要将此查询重写为laravel的Eloquent ORM。
SELECT * FROM table ORDER BY CHAR_LENGTH(field)
答案 0 :(得分:5)
似乎orderByRaw
正是您所寻找的。这是一个例子:
User::orderByRaw('CHAR_LENGTH(name)')->get();
答案 1 :(得分:0)
查询生成器
DB::table('table_name')->orderByraw('CHAR_LENGTH(col_name) ASC')->get();
雄辩的 ORM
User::orderByRaw('CHAR_LENGTH(col_name)')->get();
答案 2 :(得分:0)
在我的查询中,我必须为我的字段添加引号。
User::orderByRaw('CHAR_LENGTH("name")')->get();
答案 3 :(得分:-1)
取决于您的喜好:
DB::table('tblname')->orderBy('LENGTH(field)', 'ASC')->get();
OR
Model::orderBy('LENGTH(field)', 'ASC')->get();
OR
Model::orderBy(DB::raw('LENGTH(field), field'));