1

我已经下载了包含所有英国邮政编码的邮政编码东向和北向的军械调查,我想执行一个 mySQL 查询来计算并显示给定距离的结果。

首先,我需要将属性中的所有记录与邮政编码表相匹配,以显示每个属性东向和北向连接到结果中。

然后,我需要计算给定邮政编码和每个属性记录之间的距离,并仅显示在给定距离内的那些。

我找到了很多使用 long/lat 的例子,但我似乎找不到任何使用法令测量东向和北向系统的好例子。根据法令调查指南,使用完整的 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 回答