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 關注
- 147 瀏覽
添加回答
舉報