按数字排序,即使列类型是字符串,Laravel
Order by as Number, even if column type is string, Laravel
我有一个字符串列,但我只有双数(年龄),我想按以下方式排序,但明显的问题是我得到了错误的响应,因为是字符串。例如:(1、10、2、3、4、40 等...)。在我的代码中 $table = table、sort_by 的名称,在这种特殊情况下是 "age".
$query->orderBy("CAST(" . $table . $request->sort_by . "as NUMERIC)", 'ASC');
错误:
Undefined table: 7 ERROR: missing FROM-clause entry for table
"CAST(people"↵LINE 1:
使用orderByRaw
并将文本数字转换为整数:
$query->orderByRaw("age::int")
请注意,如果您一直需要将此文本数字列用作实际数字数据,这可能意味着设计问题,也许该列在您的 Postgres 中确实应该是整数 table。
因为我使用的是 Mongodb 和 elqouent ORM,所以这对我来说很好用
$query->orderBy("age::int")
我有一个字符串列,但我只有双数(年龄),我想按以下方式排序,但明显的问题是我得到了错误的响应,因为是字符串。例如:(1、10、2、3、4、40 等...)。在我的代码中 $table = table、sort_by 的名称,在这种特殊情况下是 "age".
$query->orderBy("CAST(" . $table . $request->sort_by . "as NUMERIC)", 'ASC');
错误:
Undefined table: 7 ERROR: missing FROM-clause entry for table "CAST(people"↵LINE 1:
使用orderByRaw
并将文本数字转换为整数:
$query->orderByRaw("age::int")
请注意,如果您一直需要将此文本数字列用作实际数字数据,这可能意味着设计问题,也许该列在您的 Postgres 中确实应该是整数 table。
因为我使用的是 Mongodb 和 elqouent ORM,所以这对我来说很好用
$query->orderBy("age::int")