mysql使用st_distance_sphere函数报错Incorrect arguments to st_distance_sphere

最近发现执行mysql st_distance_sphere报错了。

报错的信息是Incorrect arguments to st_distance_sphere。

最开始以为是跟mysql的版本有关系,所以看了下自己本地的mysql版本,执行一下sql

select version();

发现自己本地的mysql版本是

5.7.30

这个版本是支持st_distance_sphere函数的。

但是,仍旧报错,后来考虑使用st_distance,st_distance函数执行是不会报错的。

查了下,st_distance_sphere是比st_distance相对更精确些,所以就抱着精确的心理,看看如何解决执行st_distance_sphere函数报错的问题。

最后,发现了原因,在处理数据将数据插入到mysql的脚本中

`location` point NOT NULL

location的字段存储的point数据,没有按照要求存储,错误的存储成POINT(纬度 经度),正确的应该存储城经度在前,纬度在后,正确的格式数据如下图

其实英文原文的文档中也有对这个描述

SQL Error (1210): Incorrect arguments to st_distance_sphere

The geometry arguments should consist of points that specify (longitude, latitude) coordinate values: Longitude and latitude are the first and second coordinates of the point, respectively. Both coordinates are in degrees

相关推荐
阿维的博客日记5 分钟前
简要介绍联合索引
数据库·联合索引
夜夜亮晶晶13 分钟前
MySQL——数据类型(一)
数据库·mysql
一心只为学1 小时前
SQL server 日常运维命令
运维·数据库·sqlserver
cts6181 小时前
Docker操作MySQL
mysql·docker
不良人龍木木1 小时前
sqlalchemy FastAPI 前端实现数据库增删改查
前端·数据库·fastapi
落霞与孤鹭齐飞。。1 小时前
民间故事推广系统小程序的设计
java·spring boot·mysql·毕业设计·课程设计
企业管理8MSaaS1 小时前
如何在团队中有效利用工时管理软件?
数据库
Code成立2 小时前
HTML5中IndexedDB前端本地数据库
前端·数据库·html5·indexeddb
码农研究僧2 小时前
详细分析linux中的MySql跳过密码验证以及Bug(图文)
linux·mysql·bug·密码验证
goTsHgo3 小时前
clickhouse适用的业务场景
数据库·clickhouse