如何在mysql表中插入点

c0vxltue  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(259)

我得到一个mysql错误,说“address\u longi\u latit\u location”不能为空。“geomfromtext/pointfromtext”很可能返回null。这里怎么了?感谢您的帮助。

INSERT INTO address (ADDRESS_NICKNAME,ADDRESS_LONGI_LATIT_LOCATION) 
VALUES ('Testing',geomfromtext('Point(10.20.45 34.23.79)'))

另一种方式

INSERT INTO address (ADDRESS_NICKNAME,ADDRESS_LONGI_LATIT_LOCATION) 
VALUES ('Testing',pointfromtext('10.20.45 34.23.79'))
50pmv0ei

50pmv0ei1#

按照规范 ST_geomFromText() ( geomfromtext() 是已弃用的同义词,不应使用它):
如果几何参数为 NULL 或者不是语法结构良好的几何体,或者如果srid参数是 NULL ,返回值为 NULL .
事实上,你的论点在句法上并不完善,因为每个坐标都包含两个点。您可以用一个简单的方法来检查这一点:

select geomfromtext('Point(10.20.45 34.23.79)')

结果(联机试用):
(空)
使用单点,它可以:

select geomfromtext('Point(10.2045 34.2379)')

结果(真实在线)
aaaaaa ebaaayhbyobrojed129ebcx5bqa公司==
这同样适用于 ST_PointFromText(() ,但您仍然需要使用wkt格式,因此需要使用 POINT() 也:

select pointfromtext('point(10.2045 34.2379)')

结果(联机试用):
aaaaaa ebaaayhbyobrojed129ebcx5bqa公司==
基本上这两个功能是相同的,除了 pointfromtext() 强制点结果。

相关问题