2013-11-20 42 views
0

我試圖能夠生成幾何並將其插入到表中。我能夠成功地在我評論的行中做到這一點。然而,當我使用變量時,我似乎無法弄清楚我做錯了什麼。我錯過了一些我確定的事情。任何人都可以看看?將變量插入到mySQL數據庫中

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

SQL不像是一個腳本語言,其中一些"hello $foo"將檢測變量$foo嵌入在字符串中,並替換爲變量的內容變量。

鑑於

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

應該

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

這樣變量可以看出/用作實際變量,而不是從DB的角度來看只是一些純文本。

+0

真棒,解決了問題謝謝! – user2869135