MySQL 5.7 Reference Manual Including MySQL NDB Cluster 7.5 and NDB Cluster 7.6
MySQL provides several MySQL-specific functions that test the
relationship between minimum bounding rectangles (MBRs) of two
geometries g1 and
g2. The return values 1 and 0
indicate true and false, respectively.
A corresponding set of MBR functions defined according to the OpenGIS specification is described later in this section.
Returns 1 or 0 to indicate whether the minimum bounding
rectangle of g1 contains the
minimum bounding rectangle of g2.
This tests the opposite relationship as
MBRWithin().
mysql>SET @g1 = ST_GeomFromText('Polygon((0 0,0 3,3 3,3 0,0 0))');mysql>SET @g2 = ST_GeomFromText('Point(1 1)');mysql>SELECT MBRContains(@g1,@g2), MBRWithin(@g2,@g1);+----------------------+--------------------+ | MBRContains(@g1,@g2) | MBRWithin(@g2,@g1) | +----------------------+--------------------+ | 1 | 1 | +----------------------+--------------------+
MBRContains() and
Contains() are synonyms.
Returns 1 or 0 to indicate whether the minimum bounding
rectangle of g1 is covered by the
minimum bounding rectangle of g2.
This tests the opposite relationship as
MBRCovers().
MBRCoveredBy() handles its
arguments as follows:
If either argument is NULL or an
empty geometry, the return value is
NULL.
If either argument is not a syntactically well-formed
geometry byte string, an
ER_GIS_INVALID_DATA
error occurs.
Otherwise, the return value is
non-NULL.
mysql>SET @g1 = ST_GeomFromText('Polygon((0 0,0 3,3 3,3 0,0 0))');mysql>SET @g2 = ST_GeomFromText('Point(1 1)');mysql>SELECT MBRCovers(@g1,@g2), MBRCoveredby(@g1,@g2);+--------------------+-----------------------+ | MBRCovers(@g1,@g2) | MBRCoveredby(@g1,@g2) | +--------------------+-----------------------+ | 1 | 0 | +--------------------+-----------------------+ mysql>SELECT MBRCovers(@g2,@g1), MBRCoveredby(@g2,@g1);+--------------------+-----------------------+ | MBRCovers(@g2,@g1) | MBRCoveredby(@g2,@g1) | +--------------------+-----------------------+ | 0 | 1 | +--------------------+-----------------------+
Returns 1 or 0 to indicate whether the minimum bounding
rectangle of g1 covers the
minimum bounding rectangle of g2.
This tests the opposite relationship as
MBRCoveredBy(). See the
description of MBRCoveredBy()
for examples.
MBRCovers() handles its
arguments as follows:
If either argument is NULL or an
empty geometry, the return value is
NULL.
If either argument is not a syntactically well-formed
geometry byte string, an
ER_GIS_INVALID_DATA
error occurs.
Otherwise, the return value is
non-NULL.
Returns 1 or 0 to indicate whether the minimum bounding
rectangles of the two geometries
g1 and
g2 are disjoint (do not
intersect).
MBRDisjoint() and
Disjoint() are synonyms.
Returns 1 or 0 to indicate whether the minimum bounding
rectangles of the two geometries
g1 and
g2 are the same.
MBREqual() is deprecated;
expect it to be removed in a future MySQL release. Use
MBREquals() instead.
Returns 1 or 0 to indicate whether the minimum bounding
rectangles of the two geometries
g1 and
g2 are the same.
MBREquals(),
MBREqual(), and
Equals() are synonyms.
Returns 1 or 0 to indicate whether the minimum bounding
rectangles of the two geometries
g1 and
g2 intersect.
MBRIntersects() and
Intersects() are synonyms.
Two geometries spatially overlap if they intersect and their intersection results in a geometry of the same dimension but not equal to either of the given geometries.
This function returns 1 or 0 to indicate whether the minimum
bounding rectangles of the two geometries
g1 and
g2 overlap.
MBROverlaps() and
Overlaps() are synonyms.
Two geometries spatially touch if their interiors do not intersect, but the boundary of one of the geometries intersects either the boundary or the interior of the other.
This function returns 1 or 0 to indicate whether the minimum
bounding rectangles of the two geometries
g1 and
g2 touch.
Returns 1 or 0 to indicate whether the minimum bounding
rectangle of g1 is within the
minimum bounding rectangle of g2.
This tests the opposite relationship as
MBRContains().
mysql>SET @g1 = ST_GeomFromText('Polygon((0 0,0 3,3 3,3 0,0 0))');mysql>SET @g2 = ST_GeomFromText('Polygon((0 0,0 5,5 5,5 0,0 0))');mysql>SELECT MBRWithin(@g1,@g2), MBRWithin(@g2,@g1);+--------------------+--------------------+ | MBRWithin(@g1,@g2) | MBRWithin(@g2,@g1) | +--------------------+--------------------+ | 1 | 0 | +--------------------+--------------------+
MBRWithin() and
Within() are synonyms.
The OpenGIS specification defines the following functions that
test the relationship between two geometry values
g1 and g2.
The MySQL implementation uses minimum bounding rectangles, so
these functions return the same result as the corresponding
MBR-based functions described earlier in this section. The
return values 1 and 0 indicate true and false, respectively.
These functions support all argument type combinations except those that are inapplicable according to the Open Geospatial Consortium specification.
MBRContains() and
Contains() are synonyms. For
more information, see the description of
MBRContains().
Contains() is deprecated;
expect it to be removed in a future MySQL release. Use
MBRContains() instead.
MBRDisjoint() and
Disjoint() are synonyms. For
more information, see the description of
MBRDisjoint().
Disjoint() is deprecated;
expect it to be removed in a future MySQL release. Use
MBRDisjoint() instead.
MBREquals() and
Equals() are synonyms. For
more information, see the description of
MBREquals().
Equals() is deprecated;
expect it to be removed in a future MySQL release. Use
MBREquals() instead.
MBRIntersects() and
Intersects() are synonyms.
For more information, see the description of
MBRIntersects().
Intersects() is deprecated;
expect it to be removed in a future MySQL release. Use
MBRIntersects() instead.
MBROverlaps() and
Overlaps() are synonyms. For
more information, see the description of
MBROverlaps().
Overlaps() is deprecated;
expect it to be removed in a future MySQL release. Use
MBROverlaps() instead.
MBRWithin() and
Within() are synonyms. For
more information, see the description of
MBRWithin().
Within() is deprecated;
expect it to be removed in a future MySQL release. Use
MBRWithin() instead.