3 回答
TA贡献1802条经验 获得超10个赞
根据您的评论,我认为您需要一个分组查询。
$userBikes = array('862549040389788','12345');
$data = DB::table('geolocation')
->whereIn('Imei', $userBikes)
->groupBy('Imei')
->selectRaw('any_value(id) as id, any_value(Lat) as Lat, any_value(Lng) as Lng, any_value(created_at) as created_at, Imei')
->get();
TA贡献1785条经验 获得超4个赞
如果您希望$userBikes数组中的每个元素有 1 个值,则需要进行 2 个不同的查询。
$userBikes = array('862549040389788','12345');
$output = array();
foreach($userBikes as $imei) {
$data = DB::table('geolocation')
->where('Imei',$imei)
->take(1)
->get()->toArray();
array_push($output, $data)
return $output;
第二种解决方案是take(1)从查询中删除并过滤数据对象中的每个值。
TA贡献1807条经验 获得超9个赞
您必须take(1)
从查询中删除。
Take(1) 会将结果限制为 1 行。
所以应该是:
$data = DB::table('geolocation') ->whereIn('Imei',$userBikes) ->get();
- 3 回答
- 0 关注
- 107 浏览
添加回答
举报