我正在做一個按位置選擇事物的查詢 - 我需要以查詢過程中檢查產品是否在距離用戶位置2英里半徑的方式進行選擇,問題在於檢查是在另一個PHP函數中,並且盡我所知我無法在查詢結束之前使用param從數據庫調用php函數。在mysql查詢中使用php函數
感謝
需要使用的功能:
public static function vincentyGreatCircleDistance(
$latitudeFrom, $longitudeFrom, $latitudeTo, $longitudeTo, $earthRadius = 6371000)
{
// convert from degrees to radians
$latFrom = deg2rad($latitudeFrom);
$lonFrom = deg2rad($longitudeFrom);
$latTo = deg2rad($latitudeTo);
$lonTo = deg2rad($longitudeTo);
$lonDelta = $lonTo - $lonFrom;
$a = pow(cos($latTo) * sin($lonDelta), 2) +
pow(cos($latFrom) * sin($latTo) - sin($latFrom) * cos($latTo) * cos($lonDelta), 2);
$b = sin($latFrom) * sin($latTo) + cos($latFrom) * cos($latTo) * cos($lonDelta);
$angle = atan2(sqrt($a), $b);
return $angle * $earthRadius;
}
我的查詢(無位置):
SELECT * FROM `products` WHERE `name` LIKE '%iphone%' OR `name` LIKE '%5s%'
我想做
SELECT * FROM `products` WHERE `name` LIKE '%iphone%' OR `name` LIKE '%5s%' AND vincentyGreatCircleDistance($lat, $long, `lat`,`long`) < 2
什麼
謝謝
這是不可能使用PHP方法內查詢一樣, –