2013-01-16 25 views
1

我已經緯度和lonitude存儲在一個MySQL表彩車使用緯度長柱。 我試圖用一個SELECT ... WHERE命令只獲取行,每一行兩個組座標之間的界限是一個邊界內即在mysql線串mbrcontains

...其中MBRContains(GeomFromText(「多邊形( (50.619 0.479,53.153 0.019,54.089 -3.495,51.504 -2.941,50.619 0.479)) '),GeomFromText(' LINESTRING(52.57846832 -2.12799001,51.50733566 -0.1276831)'))......

其中工程偉大的,但是當我的LINESTRING改變

...其中MBRContains( GeomFromText( '' 多邊形((50.619 0.479,53.153 0.019,54.089 -3.495,51.504 -2.941,50.619 0.479)) ''),GeomFromText('LINESTRING(addresseslatitudeaddresseslongitudeaddresses1latitudeaddresses1longitude)'))

它失敗。顯然,select已經加入到address表中來創建address和address1表,這是正確的。

有什麼想法?感謝

+0

任何....?請...? – fiscme

回答

0

你引用的列您LINESTRING的引號內,因此MySQL被處理,作爲WKT定義的一部分:

'LINESTRING(addresses.latitude addresses.longitude,addresses1.latitude addresses1.longitude)'

由於您的列值不會解除引用,這WKT無效,當一個無效的WKT傳遞給GeomFromText時,MySQL安靜地返回NULL,導致MBRContains失敗。使用CONCAT建立一個正確的LINESTRING爲GeomFromText:

CONCAT('LINESTRING(',addresses.latitude',' ',addresses.longitude,',',addresses1.latitude....