1

英国のすべての郵便番号の東向きと北向きの郵便番号を含む兵器調査をダウンロードしました。特定の距離の結果を計算して表示する mySQL クエリを実行したいと考えています。

まず、プロパティのすべてのレコードを郵便番号テーブルと照合して、結果に結合された各プロパティの東座標と北座標を表示する必要があります。

次に、指定された郵便番号と各プロパティ レコードの間の距離を計算し、指定された距離内にあるものだけを表示する必要があります。

long/lat を使用する例はたくさん見つかりましたが、ordance Survey Easting および Northing System を使用する良い例を見つけることができないようです。命令調査ガイドによると、6 桁をすべて使用するとメートル単位で回答が得られるはずです。

私もこのエラーが発生しています:

errorErrormessage: BIGINT UNSIGNED 値が '((( mjm. pc. Eastings- 436421) ^ 2) + (( mjm. pc. Northings- 291786) ^ 2))' の範囲外です

クエリをテストしようとすると:

$query = "
            SELECT * , SQRT( (pc.Eastings - {$e1})^2 + (pc.Northings - {$n1})^2) AS distance
            FROM properties p, postcodes pc
            WHERE concat( p.POSTCODE1, p.POSTCODE2 )= pc.Postcode HAVING distance <= 10
            LIMIT 0 , 30
        ";

この作業を行うために何をする必要があるかを誰かが理解するのを手伝ってくれますか?

4

1 に答える 1

0

^ は二乗ではなく XOR 演算子です。これを試すことができますか?

SQRT( POW(pc.Eastings - {$e1}, 2) + 
      POW(pc.Northings - {$n1}, 2)) as distance
于 2013-03-14T22:46:48.377 に答える