1. 程式人生 > 資料庫 >Mysql sql語句 按座標查詢 並按距離排序

Mysql sql語句 按座標查詢 並按距離排序

引數1 :lat
引數2:lng
引數3: lat
引數4: 城市碼(可無)
引數5:限制?公里內
引數6:限制查詢的數量
 1 sqlStr := `SELECT
 2         id,longitude,latitude,institution_name,intro,mobile,address,cover,
 3         (
 4             6371 * acos (
 5                 cos ( radians( ? ) ) * cos( radians( latitude ) ) * cos( radians( longitude ) - radians( ? ) ) + sin ( radians( ? ) ) * sin( radians( latitude ) )
 6             )
 7         )
 8         AS
 9             distance
10         FROM
11             nts_institution
12         WHERE
13             status=1 AND city=?
14         HAVING
15             distance < ?
16         ORDER BY
17             distance ASC
18         LIMIT ?;`

 

`SELECT
        id,longitude,latitude,institution_name,intro,mobile,address,cover,
        (
            6371 * acos (
                cos ( radians( ? ) ) * cos( radians( latitude ) ) * cos( radians( longitude ) - radians( ? ) ) + sin ( radians( ? ) ) * sin( radians( latitude ) )
            )
        )
        AS
            distance
        FROM
            nts_institution
        WHERE
            status=1 AND city=?
        HAVING
            distance < ?
        ORDER BY
            distance ASC
        LIMIT ?;`
View Code