在MySQL < 5.7中,当给定无效的WKT时,空间函数返回NULL,例如:
mysql> select astext(geomfromtext('polygon()'));
+-----------------------------------+
| astext(geomfromtext('polygon()')) |
+-----------------------------------+
| NULL |
+-----------------------------------+
1 row in set (0.00 sec)但对于较新的MySQL,相同的输入给出了:
ERROR 3037 (22023): Invalid GIS data provided to function st_geometryfromtext.有没有办法在将WKT发送到几何函数之前检查它是否有效?或者,是否存在强制几何函数为无效输入生成NULL而不是error的设置?
发布于 2018-10-22 10:23:05
MySQL提供了两个函数来测试几何图形的有效性,但这两个函数都以已经形成的几何图形作为输入。
ST_IsValid(ST_GeomFromText(?));返回一个布尔值
ST_Validate(ST_GeomFromText(?));返回GEOM,如果无效,则返回null。
我对在MySQL中解析WKT一无所知,也没有设置将其切换回<5.7行为。
https://stackoverflow.com/questions/39285560
复制相似问题