mysql 8.0以上版本空间地理函数 SRID 4326(WGS84)的axis-order(轴顺序) 改为了lat-long,低版本4326的axis-order为long-lat 导致同样的代码不兼容两个版本的解决方案,以及用Stored Generated Column提升空间地理函数 执行效率
1.select ST_GeomFromText(‘POINT(1 1)’,4326,‘axis-order=long-lat’) ,实测不行
SRID用4326,指定轴顺序,想法很美好,低版本不支持,哈哈哈,气不气。
2.select ST_GeomFromText(‘POINT(1 1)’,0)或者select ST_GeomFromText(‘POINT(1 1)’),这种方式可以,但是要自己写代码做参数校验,不然脏数据就很多。
SRID不用4326 用默认的即0,相当于去除经纬度范围限制 ,是一个普通的二维坐标系,缺点是数据入库前要自己写代码做参数合法性校验。因为MySQL 8.0.16 之后check约束才正真实现,MySQL 8.0.16 之前如果用这种方式解决版本兼容,就得代码中做参数合法性校验