问题描述
我正在努力寻找一个看似简单而直接的场景。 我在MysqL数据库的表中定义了一个几何字段:
CREATE TABLE `mytable` (
`id` char(38) NOT NULL,`checkin_location` geometry DEFAULT NULL,PRIMARY KEY (`id`),) ENGINE=InnoDB DEFAULT CHARSET=utf8;
现在要进行测试,我正在执行以下简单语句:
update mytable set checkin_location = Point(50.8,4.44)
我收到绿色成功消息,告诉我1条记录已受到影响。 (表中目前我只有1条记录。)
但是当我执行select * from mytable
时,该行返回的checkin_location
字段仍为NULL
:更新语句似乎(静默地)失败了。
一般来说,我是MysqL的新手。任何帮助将不胜感激
解决方法
空间类型必须为正确的类型,当您尝试选择它们时,也要寻找空间索引
模式(MySQL v8.0)
CREATE TABLE geom (Id int,checkin_location GEOMETRY NULL,g POINT NULL);
INSERT INTO `geom` VALUES (1,NULL,NULL);
UPDATE `geom` set
checkin_location = ST_GeomFromText('POINT(50.8 4.44)'),g = POINT(50.8,4.44) WHERE id = 1;
查询#1
SELECT * FROM `geom`;
| Id | checkin_location | g |
| --- | -------------------- | ------------------- |
| 1 | {"x":50.8,"y":4.44} | {"x":50.8,"y":4.44} |