使用变量将Geometry插入到mySQL数据库中

时间:2013-11-20 14:56:58

标签: mysql variables geometry

我正在尝试生成几何体并将其插入表格中。我能够在我注释掉的系列中成功完成此操作。然而,当我使用变量时,我似乎无法弄清楚我做错了什么。我很遗憾,我很遗憾。有人可以看看吗?

SET @minX = 1;
SET @minY = 2;
SET @maxX = 43;
SET @maxY = 86;
SET @minXminY = concat((@minX),' ',(@minY));
SET @maxXminY = concat((@maxX),' ',(@minY));
SET @maxXmaxY = concat((@maxX),' ',(@maxY));
SET @minXmaxY = concat((@minX),' ',(@maxY));
SET @g1 = concat((@minXminY),", ",(@maxXminY),", ",(@maxXmaxY),", ",(@minXmaxY),", ",(@minXminY));
SET @g = 'POLYGON((@g1))';
##SET @g = 'POLYGON((1 2,43 2,43 86,1 86,1 2))';

INSERT INTO `db`.`table`
(`name`,
`geometry`)
VALUES
('test4',
(GeomFromText(@g)));

1 个答案:

答案 0 :(得分:1)

SQL不像脚本语言,"hello $foo"会检测字符串中嵌入的变量$foo,并用变量的内容替换变量。

鉴于

SET @g = 'POLYGON((@g1))';

应该是

SET @g = CONCAT('POLYGON((', @g1, '))')

这样变量可以看作/用作实际变量,而不仅仅是DB的一些纯文本。