2016-06-12 9 views
0

mysqlレコードから距離を計算したい、私はすべての座標を取得し、LineStringオブジェクトとして保存がエラーがあります。私のSQLに何が間違っていますか?入力として2番目のクエリ

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)); 

それとも1つのクエリで:ST_Length関数は何も得られないので

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文字列、 .. 何か案が? howtoはmysqlの一時変数を設定しますか? – binaryCode

+0

どういう意味ですか?固定長の文字列で左に空白を埋めるようなものが欲しいですか? – Blank

関連する問題