Mysql SQLintersects查询无法正常工作

Mysql SQLintersects查询无法正常工作,mysql,geospatial,spatial,point-in-polygon,Mysql,Geospatial,Spatial,Point In Polygon,我正在尝试从表格中选择位于特定多边形中的点。 这里,我的表test1有几何类型的data4列,它包含: 2,3 5,6 7,10 当我尝试以下查询时,返回的是空行。请帮我解决这个错误 DECLARE @g geometry; SET @g = geometry::STGeomFromText('POLYGON((0 0, 4 0, 4 4, 0 4, 0 0))', 0); SELECT * FROM test1 WHERE d

我正在尝试从表格中选择位于特定多边形中的点。
这里,我的表test1有几何类型的data4列,它包含:

2,3  
5,6  
7,10  
当我尝试以下查询时,返回的是空行。请帮我解决这个错误

DECLARE @g geometry;   
SET @g = geometry::STGeomFromText('POLYGON((0 0, 4 0, 4 4, 0 4, 0 0))', 0);  
SELECT        *  
FROM            test1  
WHERE data4.STIntersects(@g) = 1;  
我也尝试过:

WHERE @g.STContains(geometry::STGeomFromText(test1.data4, 0))='True'   

这也不管用

如果你的问题被标记为MySQL,那么你使用的方法是完全错误的。STGeomFromText是一个SQL Server函数

做你想做的事的方法很简单

SELECT * 
FROM test1 
WHERE MBRContains(GeomFromText('Polygon((0 0,0 4,4 4,4 0,0 0))'), data4)

作为奖励,下面是如何为SQL Server编写它

SELECT * 
FROM test1 
WHERE geometry::STGeomFromText('Polygon((0 0,0 4,4 4,4 0,0 0))',0)
          .STContains(data4) = 1

.

谢谢你的帮助。我是为SQL Server函数编写的