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

緯度と経度を使用して、MySQLで最も近い10の都市を検索しますか?

    何もグループ化していないので、持っていることは使えません。あなたがする必要があるのは、どこで選択したかを繰り返すことです。

    $query = "SELECT *, 
    ( 3959 * acos( cos( radians('$slatitude') ) * 
    cos( radians( latitude ) ) * 
    cos( radians( longitude ) - 
    radians('$slongitude') ) + 
    sin( radians('$slatitude') ) * 
    sin( radians( latitude ) ) ) ) 
    AS distance FROM cities WHERE ( 3959 * acos( cos( radians('$slatitude') ) * 
    cos( radians( latitude ) ) * 
    cos( radians( longitude ) - 
    radians('$slongitude') ) + 
    sin( radians('$slatitude') ) * 
    sin( radians( latitude ) ) ) ) < '$miles' ORDER BY distance ASC LIMIT 0, 10";
    

    または、次のようなことを行うことができます:

    $query = "
    SELECT * FROM (
      select *, 
      ( 3959 * acos( cos( radians('$slatitude') ) * 
      cos( radians( latitude ) ) * 
      cos( radians( longitude ) - 
      radians('$slongitude') ) + 
      sin( radians('$slatitude') ) * 
      sin( radians( latitude ) ) )) as distance from cities
    ) WHERE distance < '$miles' ORDER BY distance ASC LIMIT 0, 10";
    


    1. Postgresで再帰的なJSONキーを収集する

    2. SQLServerのVARCHARおよびNVARCHARデータ型

    3. ストアドプロシージャがOracleで最後に変更またはコンパイルされたのはいつかを確認するにはどうすればよいですか?

    4. MySQLとMariaDBデータベースのバックアップリソース