Mysql子查询作为输入第二个查询

时间:2016-06-12 00:04:26

标签: mysql

我想计算与mysql记录的距离,首先我得到所有的cordinates并保存为LineString对象,但我有错误。我的sql出了什么问题?

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

1 个答案:

答案 0 :(得分: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;