Laravel按字段长度排序

时间:2017-07-01 20:18:54

标签: sql laravel-5.4 laravel-eloquent

我想构建一个按特定字段长度排序数据的查询。我需要将此查询重写为laravel的Eloquent ORM。

SELECT * FROM table ORDER BY CHAR_LENGTH(field)

4 个答案:

答案 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'));