Laravel 按字段长度排序

Laravel order by field length

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

SELECT * FROM table ORDER BY CHAR_LENGTH(field)

取决于您的喜好:

DB::table('tblname')->orderBy('LENGTH(field)', 'ASC')->get();

Model::orderBy('LENGTH(field)', 'ASC')->get();

Model::orderBy(DB::raw('LENGTH(field), field'));

看来 orderByRaw 就是您要找的。这是一个例子:

User::orderByRaw('CHAR_LENGTH(name)')->get();

查询生成器

DB::table('table_name')->orderByraw('CHAR_LENGTH(col_name) ASC')->get();

Eloquent ORM

User::orderByRaw('CHAR_LENGTH(col_name)')->get();

在我的查询中,我必须为我的字段添加引号。

User::orderByRaw('CHAR_LENGTH("name")')->get();