根据用户的距离偏好查找用户

时间:2014-07-11 12:21:10

标签: php mysql

我的MYSQL数据库中有两个表,它们是:

  1. 包含列的用户:name | email | distancePrefrenceinKM | latitude | longitude
  2. 提醒列:title | description | Latitude | longitude
  3. 我想要实现的是,每当我在第二个表中插入任何警报时,系统都需要将警报发送给所选范围内的所有用户。

    如果我遍历每个用户,那将花费大量时间并且不会按照预期工作。

    我试图在谷歌上找到解决方案,但没有运气。

    我遇到了以下问题:

    set @lng_min = @longitude - @radius/abs(cos(radians(@latitude))*69);
    set @lng_max = @longitude + @radius/abs(cos(radians(@latitude))*69);
    set @lat_min = @latitude - (@radius/69);
    set @lat_max = @latitude + (@radius/69);
    
    SELECT * FROM postcode WHERE (longitude BETWEEN @lng_min AND @lng_max) AND (latitude BETWEEN @lat_min and @lat_max);
    

    但同样我不能在这里设置最小和最大范围,因为每个用户都有不同的距离偏好。

    欢迎任何建议,因为我正在寻找最佳解决方案。

    此致 阿希什

0 个答案:

没有答案