转换空间文本刚开始玩的MySQL的空间空间列
问题描述:
ID BDY
4BCTD 152.936368,-27.22613|152.936525,-27.226409|152.937087,-27.228033|152.937327,-....
我有一个BDY表,包括ID和BDY的。
CREATE TABLE tbl_geom
(ID VARCHAR(4),
BDY text,
GEOLOC GEOMETRY);
BDY有经纬度文本,我会将它转换成名为GEOLOC的空间列。
试过,但没有奏效:
UPDATE tbl_geom b SET GEOLOC = POLYFROMTEXT('SELECT bdy FROM tbl_geom a');
不停地返回null
即使这些查询返回null
SELECT GeomFromText('SELECT bdy FROM tbl_geom a');
SELECT polyFromText('SELECT bdy FROM tbl_geom a');
SELECT AsText(bdy) FROM tbl_geom;
任何帮助深表感谢。
答
我觉得您的查询应该是
UPDATE `tbl_geom` SET `GEOLOC` = POLYFROMTEXT(CONCAT('POLYGON((', REPLACE(REPLACE(`bdy`, ',', ' '), '|', ','), '))'));
此:
- 转换在BDY中的逗号空间
- 管道转换为逗号
- 顶部和尾巴是在一个多边形致电
- 更新GEOLOC