【问题标题】:insert a MYSQL 5.7 point representation of latitude,longitude into a table将纬度、经度的 MYSQL 5.7 点表示形式插入表中
【发布时间】:2016-04-14 15:05:15
【问题描述】:

我有一个表格几何如下:

id (Int) not null (pk),
name (varchar 25),
timestamp (timestamp),
lat (decimal 6,4),
lon (decimal 6,4),
g (geometry),
pt (point)

我有另一个填充纬度、经度字段的进程。

我想填充 pt 字段以利用 5.7 的地理空间扩展功能

如果我将 lon,lat 放入以下插入语句中,则可以正常工作:

set@g='point( -80.00 40.00)';

insert into geom (pt,timestamp) values (pointfromtext(@g),now());

但我想使用存储在该记录的 lon,lat 字段中的值

我可以使用 concat 语句创建看似正确的值,但插入“pointfromtext”语句不会获取结果

【问题讨论】:

标签: mysql latitude-longitude


【解决方案1】:

使用,除其他外,构造 SQL,

CONCAT("point(", lon, ",", lat, ")")

如果您希望覆盖整个世界,lon 需要 DECIMAL(7.4)

【讨论】:

  • 非常感谢这里是有效的查询,感谢查看这个以及有关十进制结构的信息:set @g=(select CONCAT("point(", lon,' ',lat , ")") 作为来自 geom 其中 id='13');插入 geom (pt,timestamp) 值 (pointfromtext(@g),now());
猜你喜欢
  • 2015-05-09
  • 1970-01-01
  • 1970-01-01
  • 2016-08-21
  • 1970-01-01
  • 1970-01-01
  • 2017-02-05
  • 2011-07-24
  • 2014-12-20
相关资源
最近更新 更多