最近使用空间点位查询数据时函数报错Incorrect arguments to st_distance_sphere报错。
因为之前是没有问题的,所以把问题指向了数据,因为是外部数据,不是通过系统打点获取,发现是因为经纬度反了,location的字段存储的point数据,没有按照要求存储,错误的存储成POINT(纬度 经度),正确的应该存储城经度在前,纬度在后,正确的格式数据如下图
在point类型中范围是(-90,90),一旦经纬度反了就会报错。
只需要将经纬度两个字段的数据项调换,再重新生成下location数据就可以了。
select * from table where longitude > 90
UPDATE table
SET new = latitude, latitude= longitude , longitude = new , new = NULL
WHERE longitude > 90
最后再将location字段重新生成下就OK了