0

我的 MySQL 服务器中有这么大的查询:

SELECT IF(MBRContains(GeomFromText("POLYGON((37.5426344872 55.7108342622), (37.6080245972 55.7395383327))"), PointFromText(AsWkt(`map_position`))) = 1, id, NULL) as `result` FROM `webgl-app`.shapefiles_data;

它返回这样的结果:

在此处输入图像描述

我只需要从现有值中获取所有行( * )。

所以,思路是:获取所有记录,如果IS NOT NULL这里有数据。

我试过使用:

SELECT IF(MBRContains(GeomFromText("POLYGON((37.5426344872 55.7108342622), (37.6080245972 55.7395383327))"), PointFromText(AsWkt(`map_position`))) = 1, id, NULL) as `result` FROM `webgl-app`.shapefiles_data WHERE `result` != NULL;

但这是一个错误的想法,我该如何解决我的问题并为我的目标构建正确的 SQL 查询?

谢谢!

4

1 回答 1

0
SELECT *
FROM `webgl-app`.shapefiles_data 
WHERE IF(MBRContains(GeomFromText("POLYGON((37.5426344872 55.7108342622), (37.6080245972 55.7395383327))"), 
       PointFromText(AsWkt(`map_position`))) = 1, id, NULL) IS NOT NULL;
于 2013-11-06T16:34:21.603 回答