Laravel - 按数字 (int) 排序,即使列类型是字符串

Laravel - Order by as Number (int), even if column type is string

这里是:-

$query = Section::orderBy("section", "desc")->get();

这里的部分是一个字符串类型的列,但其中有数字,我想按这些数字排序 感谢您的回复

首先你应该在设计模式时使用正确的数据类型。

对于您现有的架构,您可以使用 orderByRaw 方法

调整您的 order by 子句以在运行时键入您的值
->orderByRaw('section * 1 desc') 

你可以使用orderByRaw with mysql convert

$query = Section::orderByRaw('CONVERT(section, SIGNED) desc')->get();
$query->orderByRaw("section::int", "desc")->get();