MYSQL:在某些情况下通过HAVING过滤不起作用

时间:2015-03-12 22:00:49

标签: php mysql

我在从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');

我怎么能解决这个问题?

1 个答案:

答案 0 :(得分:1)

不是&#34;距离&#34;这是一个字符串;你需要在HAVING子句中使用backtics`Distance`。