使用ST_Distance_Sphere 时出现Incorrect arguments to st_distance_sphere问题
我使用的是5.7.28版本的MySQL数据库,是包含这个方法的
但是还是出现这个问题,下面是代码
SELECT
id,
NAME,
address,
lat,
lng,
ST_Distance_Sphere (
POINT ( 101.2499909, 20.17155633 ),
POINT (
CAST(
lng AS DECIMAL ( 10, 6 )),
CAST(
lat AS DECIMAL ( 10, 6 )))
) as aaaaa
FROM
your_table
WHERE
AND ST_Distance_Sphere (
POINT ( 118.2499909, 31.17155633 ),
POINT (
CAST(
lng AS DECIMAL ( 10, 6 )),
CAST(
lat AS DECIMAL ( 10, 6 )))
) <= 2000
原因1:传入的值经纬度弄反了,会出现这个问题
原因2:数据库中保存的经纬度值弄反了,也会出现这个问题
原因3:数据库中字段是varchar类型的,所以要转换一下(应该不用,我试了不转换也可以)
原因4:或者是你数据库表中当前存入的经纬度字段为空(我试了,也没事)