选择矩形范围内的坐标值,这样的sql怎么写
表里面有minX,minY,maxX,maxY字段,记录一个矩形范围。
给定2组坐标,形成一个矩形。选择所有在这个矩形范围内的记录。
不是完全包括,只要有一部分在就行。
[解决办法]
这个有点数学性质的问题了。
假定坐标(x1,y1), (x2,y2)
a = min(x1,x2)
b= min(y1,y2)
c = max(x1,x2)
d= max(y1,y2)
select * from tb
where (not ((minX > c) or (maxX < a)))
and (not ((minY > d) or (maxY < b)))
[解决办法]
...where x1 between minX and maxX and x2 between minX and maxX
and y1 between minY and maxY and y2 between minY and maxY
...where (minX < X and Y between minY and maxY)
or (minY < Y and X between minX and maxX)