MySql:更新几何点

问题描述

我正在努力寻找一个看似简单而直接的场景。 我在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} |

View on DB Fiddle