【问题标题】:I want to fetch rows from mysql database with filter by near by and the limit of distance我想通过附近的过滤器和距离的限制从mysql数据库中获取行
【发布时间】:2019-04-21 16:18:25
【问题描述】:

我想从MySql 数据库中获取行,并使用附近的过滤器和距离的限制。我创建了一个查询,可以正常获取附近的数据,但我想添加距离限制条件,这意味着如果我想要位置为 20 公里的行。 这是在附近工作的查询。

$lat="";
$lon="";
$sql="SELECT *, 
  111.111 *
    DEGREES(ACOS(COS(RADIANS(".$lat."))
         * COS(RADIANS(Lat))
         * COS(RADIANS(".$lon." - Lon))
         + SIN(RADIANS(".$lat."))
         * SIN(RADIANS(Lat)))) AS d
FROM Table
ORDER BY d"

【问题讨论】:

    标签: php mysql location


    【解决方案1】:

    您可以使用 HAVING 子句来实现这一点

    $sql="SELECT *, 
      111.111 *
        DEGREES(ACOS(COS(RADIANS(".$lat."))
             * COS(RADIANS(Lat))
             * COS(RADIANS(".$lon." - Lon))
             + SIN(RADIANS(".$lat."))
             * SIN(RADIANS(Lat)))) AS d
    FROM Table HAVING d <= 20
    ORDER BY d"
    

    【讨论】:

    • (或WHERE 111.111 * ... &lt;=20)
    猜你喜欢
    • 2018-10-07
    • 1970-01-01
    • 1970-01-01
    • 2019-04-27
    • 1970-01-01
    • 2017-06-21
    • 2017-11-19
    • 2020-01-14
    • 1970-01-01
    相关资源
    最近更新 更多