【问题标题】:How to fetch table records according to array of ids?如何根据id数组获取表记录?
【发布时间】:2016-10-02 02:32:25
【问题描述】:

我在 laravel 做项目。我想根据包含列id的数组显示所有记录。

我有数组,

$prov_Data  =  ["11","15","3","7","8","2","4"];

我想从提供者表中获取所有记录,其 id 为 11,15,3,7,... 串行。

为此,当我这样做时,

$providerData = Provider::whereIn('id',$prov_Data)->get();

然后返回的数据为 2,3,4,... 即按 asc 顺序。我只想要 11,15,3,... 顺序的数据。

【问题讨论】:

标签: php mysql arrays laravel


【解决方案1】:
$array = ["11","15","3","8","2","4","7"];
$list = implode(',', $array);
$data = Provider::whereIn('id', $array)->orderByRaw("FIELD (id, $list) ASC")->get();
return $data;

【讨论】:

    【解决方案2】:

    您可以使用order by field 功能:

    $prov_Data  =  ["11","15","3","7","8","2","4"];
    $ids = implode(',', $prov_Data);
    $providers = Provider::whereIn('id', $prov_Data)->orderByRaw("FIELD (id, $ids) ASC")->get();
    

    只在mysql上测试过

    【讨论】:

      猜你喜欢
      • 2021-09-04
      • 1970-01-01
      • 1970-01-01
      • 2020-07-26
      • 2017-05-25
      • 1970-01-01
      • 2023-02-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多