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

SQLデータベースから緯度と経度を使用して最寄りの場所を見つける方法は?

    MySQLで近くの場所を見つける

    これは、37、-122座標から半径25マイル以内にある最も近い20の場所を見つけるSQLステートメントです。その行の緯度/経度とターゲットの緯度/経度に基づいて距離を計算し、距離の値が25未満の行のみを要求し、クエリ全体を距離順に並べ替えて、結果を20に制限します。マイルではなくキロメートルで検索するには、3959を6371に置き換えます。

    テーブル構造:

    id,name,address,lat,lng
    

    注-ここでは、緯度=37および経度=-122です。だからあなたは自分のものを渡すだけです。

    SELECT id, ( 3959 * acos( cos( radians(37) ) * cos( radians( lat ) ) * 
    cos( radians( lng ) - radians(-122) ) + sin( radians(37) ) * 
    sin( radians( lat ) ) ) ) AS distance FROM your_table_name HAVING
    distance < 25 ORDER BY distance LIMIT 0 , 20;
    

    詳細については、こちら をご覧ください。 。



    1. MySQLは自動的に文字列を数値にキャスト/変換しますか?

    2. UTF8ワークフローPHP、MySQLの要約

    3. SQL Server(T-SQL)にテーブルをドロップする前にテーブルが存在するかどうかを確認する4つの方法

    4. PyMySQLが古い/スナップショット値を返す/クエリを再実行しない?