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();
这里是:-
$query = Section::orderBy("section", "desc")->get();
这里的部分是一个字符串类型的列,但其中有数字,我想按这些数字排序 感谢您的回复
首先你应该在设计模式时使用正确的数据类型。
对于您现有的架构,您可以使用 orderByRaw
方法
->orderByRaw('section * 1 desc')
你可以使用orderByRaw with mysql convert
$query = Section::orderByRaw('CONVERT(section, SIGNED) desc')->get();
$query->orderByRaw("section::int", "desc")->get();