我试图执行下面的sql语句,但是我发现laravel雄辩的语法对于带有存储过程和子查询的更复杂查询来说相当混乱。
我将如何执行以下命令?
$longitude = (float) $longLat['longitude'];
$latitude = (float) $longLat['latitude'];
$radius = $distance; // in miles
$lng_min = $longitude - $radius / abs(cos(deg2rad($latitude)) * 69);
$lng_max = $longitude + $radius / abs(cos(deg2rad($latitude)) * 69);
$lat_min = $latitude - ($radius / 69);
$lat_max = $latitude + ($radius / 69);
SELECT get_distance_in_miles_between_geo_locations(51.666774,-1.92973, lat, lng) AS distance_from_input, domain FROM websites_lats_and_longs WHERE domain IN (SELECT domain FROM websites_lats_and_longs
WHERE (lng BETWEEN $lng_min AND $lng_max)
AND (lat BETWEEN $lat_min and $lat_max)) ORDER BY distance_from_input;
1条答案
按热度按时间h6my8fg21#
首先,让我们编写子查询中的where
接下来,编写使用存储函数的查询
哪里
DB::table("websites_lats_and_longs")
被雄辩的table模型所取代。