sql >> データベース >  >> RDS >> Mysql

mysqlのST_Distance_Sphereが2つの場所間の正確な距離を提供していません

    ST_DISTANCE_SPHERE ポイントはPOINT(longitude, latitude)として表現する必要があります 、コードでそれらを逆にします

    set @lat1 = 38.898556;
    set @lon1 = -77.037852;
    set @lat2 = 38.897147;
    set @lon2 = -77.043934;
    SET @pt1 = point(@lon1, @lat1);
    SET @pt2 = point(@lon2, @lat2);
    SELECT ST_Distance_Sphere(@pt1, @pt2)/1000,
      lat_lng_distance(@lat1,@lon1,@lat2,@lon2);
    
    +-------------------------------------+-------------------------------------------+
    | ST_Distance_Sphere(@pt1, @pt2)/1000 | lat_lng_distance(@lat1,@lon1,@lat2,@lon2) |
    +-------------------------------------+-------------------------------------------+
    |                   0.549154584458455 |                        0.5496311783790588 |
    +-------------------------------------+-------------------------------------------+
    

    これにより、関数によって返される値にはるかに近い結果が得られます。



    1. 並べ替えずにテーブルの最後の5行を選択するにはどうすればよいですか?

    2. 結合に存在しないレコードを削除する

    3. MySQLTABLEステートメント

    4. MySQL:スペルのバリエーションを検索する方法は? (マレー、マレーなど)