2016-06-12 57 views
0

我想計算距離mysql記錄的距離,首先我得到所有的座標並保存爲LineString對象,但是我有錯誤。我的sql有什麼問題?Mysql子查詢作爲輸入的第二個查詢

WITH tmp AS 
    (SELECT GROUP_CONCAT(CONCAT_WS(' ',lat,lng) SEPARATOR ', ') FROM track WHERE vh_id='75' AND DATE(tdate)='2016-06-09' ORDER BY tdate) 
SELECT ST_Length(ST_GeomFromText(tmp)); 

回答

0

首先,MySQL不支持WITH子句;其次,你應該定義像10.4 User-Defined Variables這樣的變量。

您可以更改SQL來此;)

SELECT GROUP_CONCAT(CONCAT_WS(' ',lat,lng) SEPARATOR ', ') INTO @tmp 
FROM track 
WHERE vh_id='75' AND DATE(tdate)='2016-06-09' ORDER BY tdate; 
SELECT ST_Length(ST_GeomFromText(@tmp)); 

,或只與一個查詢:

SELECT ST_Length(ST_GeomFromText(GROUP_CONCAT(CONCAT_WS(' ',lat,lng) SEPARATOR ', '))) 
FROM track 
WHERE vh_id='75' AND DATE(tdate)='2016-06-09' ORDER BY tdate; 
+0

好,第一個選擇的工作,但MySQL的削減excedeec字符串,這樣ST_Length功能不會造成什麼.. 任何想法?如何在MySQL中設置長度臨時變量? – binaryCode

+0

你是什麼意思?你想要在左邊用固定長度的字符串填充空白嗎? – Blank

相關問題