微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

MySql:更新几何点

如何解决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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。