我有闲置的 mysql 查询
SELECT de.geoId,(6371 * ACOS( COS( RADIANS(zde.latitude) )*
COS(RADIANS( de.latitude ) ) * COS( RADIANS( de.longitude ) - RADIANS(zde.longitude) ) +
SIN( RADIANS(zde.latitude) ) * SIN( RADIANS( de.latitude ) ) ) ) AS distance
FROM tbl_zipde AS zde
LEFT JOIN tbl_country_de AS de
ON (de.admin1_code=zde.admin_code1)
Where zde.id=8 and de.geoId=24 having distance<1
此查询应返回表 tbl_zountry_de 中的记录,该记录与 tbl_zipde 中 id=8 的记录具有相同的纬度和经度值,但由于这两个点之间的计算距离为 0,mysql 将 0 识别为距离 NULL,因此它不会返回任何记录,但如果我删除“距离<1”,那么它会从 tbl_country_de 返回 id=24 的正确记录,但表列距离的值为 NULL。
我应该如何编写mysql查询以使mysql返回两点之间(纬度和经度值)之间距离等于0的记录
为什么mysql为距离返回NULL而不是'0'?
我已将纬度和经度数据类型从十进制(10,7)更改为浮点(10,7)并且我可以工作。不知道这是不是真正的问题??