如何在 laravel 中进行自定义排序和从大到小
How to make custom order and largest to smallest in laravel
我的数据是
id name
----------------
1 L_one
2 z_odin
3 e_lock
4 b_block
5 L_joke
我想这样下单
id name
------------------
5 L_joke
1 L_one
4 b_block
3 e_block
2 z_odin
首先,我想以“L”开头的命名顺序。其次,我想把id从大到小排序。
在这种情况下我该如何编码?
感谢大家
这个问题我试过。
实际上,我的问题有点复杂。所以,我问了一个非常简单的解决方案来解决我的问题。
已编辑
我试过的代码在这里
Product::where('state','<>','banned')->where('created_at','LIKE',$today.'%')
->union(Product::orderBy('view', 'DESC'))->take(80)->get();
Product::orderBy(DB::raw('FIELD(created_at, "2021-01-18 ++")'),'DESC')->orderBy('view','desc')->get();
Product::whereDate('created_at', now())->orderBy('view','desc')->get();
我还阅读了 laravel 文档。
我也搜索类似的问题。
但是北上解决了我的问题
回答
$answer = Model::orderByRaw('SUBSTRING(name, 1, 1)="L" desc, id desc')->get();
我的数据是
id name
----------------
1 L_one
2 z_odin
3 e_lock
4 b_block
5 L_joke
我想这样下单
id name
------------------
5 L_joke
1 L_one
4 b_block
3 e_block
2 z_odin
首先,我想以“L”开头的命名顺序。其次,我想把id从大到小排序。
在这种情况下我该如何编码?
感谢大家
这个问题我试过。 实际上,我的问题有点复杂。所以,我问了一个非常简单的解决方案来解决我的问题。
已编辑
我试过的代码在这里
Product::where('state','<>','banned')->where('created_at','LIKE',$today.'%')
->union(Product::orderBy('view', 'DESC'))->take(80)->get();
Product::orderBy(DB::raw('FIELD(created_at, "2021-01-18 ++")'),'DESC')->orderBy('view','desc')->get();
Product::whereDate('created_at', now())->orderBy('view','desc')->get();
我还阅读了 laravel 文档。 我也搜索类似的问题。 但是北上解决了我的问题
回答
$answer = Model::orderByRaw('SUBSTRING(name, 1, 1)="L" desc, id desc')->get();