如何使用 whereIn 和 take 函数从 laravel 中的 SQL 获取数据?

您可以将其类型转换为浮点数:


$value = (float) $column[1];

为了确保你确实有一个浮点数,你可以尝试像这样检查


if (is_numeric($column[1]) && !is_int($column[1])) {

    $value = (float) $column[1];

}


慕勒3428872
浏览 108回答 3
3回答

守候你守候我

根据您的评论,我认为您需要一个分组查询。$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();

九州编程

如果您希望$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)从查询中删除并过滤数据对象中的每个值。

函数式编程

您必须take(1)从查询中删除。Take(1) 会将结果限制为 1 行。所以应该是:$data = DB::table('geolocation')     ->whereIn('Imei',$userBikes)           ->get();
打开App,查看更多内容
随时随地看视频慕课网APP