我在从 php 脚本运行的 MYSQL 查询中遇到问题。
在我的sql语句中,我需要过滤所有太远的用户,以便:
SELECT
...
ROUND(ACOS(SIN(RADIANS($Lat)) *
SIN(RADIANS(s.Latitude)) +
COS(RADIANS($Lat)) *
COS(RADIANS(s.Latitude)) *
COS(RADIANS(s.Longitude) -
RADIANS($Lon))) * $unitKm, 2) AS "Distance"
...
HAVING "Distance" <= $Dis
现在,有一个用户在 440.55 公里之外,但是,如果我将 334 作为"Dis"传递,它不会被过滤。
333是可以的,但是当大于 333 时,HAVING 子句不起作用。
我$Dis传递为数字,并通过 php 获取它:
$Dis = filter_input(INPUT_GET, 'Dis');
我该如何解决问题?
不是字符串的"距离";您需要在 HAVING 子句中使用反向运算符 'Distance'。