我的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查询?
谢谢!
答案 0 :(得分: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;