【问题标题】:How to select or sort using order by array in Laravel如何在 Laravel 中使用按数组排序来选择或排序
【发布时间】:2017-04-28 17:23:34
【问题描述】:
$return=DB::table('products')
                ->select('products.*', 'images.address')
                ->leftJoin("images",function($join){
                            $join->on('products.id', '=', 'images.product_id');
                            $join->where('images.default','1');
                        })
                ->whereIn('products.id',session("idcompare"))
                ->get();
  1. session('idcompare') 的值为 (1,4,2)
  2. 选中此选项后,products.id 的结果集的顺序为 1,2,4
  3. 如何按我的会话选择或订购?

【问题讨论】:

  • 如果你没有明确指定和 ORDER BY 子句,MySQL 将按照它们被检索的顺序返回结果(在这种情况下,它们被检索的顺序可能是 idcompare 上的扫描或键)。

标签: php mysql sql laravel session-variables


【解决方案1】:

另一种方式,将这一行放在你的 get 之前

->orderByRaw('FIELD(products.id,session("idcompare"))')

【讨论】:

    【解决方案2】:
            $arr=[];
            foreach(session("idcompare") as $i){
                foreach($return as $j) {
                    if ($i == $j->id) {
                        $arr[] = $j;
                    }
                }
            }
            return $arr;
    
    1. 哦,这很简单

    【讨论】:

      猜你喜欢
      • 2017-09-03
      • 1970-01-01
      • 1970-01-01
      • 2021-09-03
      • 2021-11-02
      • 1970-01-01
      • 2023-03-15
      • 1970-01-01
      相关资源
      最近更新 更多