当转换结果类型为 Polygon 时,适用以下情况:● 如果要转换的表达式是 LineString 类型的结构良好的几何图形,且是一个环(即起点和终点相同),则函数结果是 Polygon,其外环由 LineString 的点按相同的顺序组成。如果表达式不是一个环,就会出现 ER_INVALID_CAST_TO_GEOMETRY 错误。如果环的顺序不正确(外环必须是逆时针),就会出现 ER_INVALID_CAST_POLYGON_RING_DIRECTION 错误。● 如果要转换的表达式是类型为结构良好的 Polygon 几何图形,则函数的结果是该 Polygon。● 如果要转换的表达式是结构良好的 MultiLineString 类型的几何图形,其中所有元素都是环,则函数结果是一个 Polygon,其中第一个 LineString 作为外环,任何额外的 LineString 值作为内环。如果表达式的任何元素不是环,就会出现 ER_INVALID_CAST_TO_GEOMETRY 错误。如果任何环的顺序不正确(外环必须是逆时针,内环必须是顺时针),就会出现 ER_INVALID_CAST_POLYGON_RING_DIRECTION 错误。● 如果要转换的表达式是包含单个 Polygon 的结构良好的 MultiPolygon 几何图形,则函数结果为该 Polygon。如果表达式包含多个 Polygon,就会出现 ER_INVALID_CAST_TO_GEOMETRY 错误。● 如果要转换的表达式是只包含一个 Polygon 的类型为 GeometryCollection 的结构良好的几何图形,则函数的结果是该 Polygon。如果表达式为空、包含多个 Polygon,或包含其他几何类型,将发生 ER_INVALID_CAST_TO_GEOMETRY 错误。● 如果要转换的表达式是 LineString、Polygon、MultiLineString、MultiPolygon 或 GeometryCollection 类型之外的结构良好的几何图形,则会发生 ER_INVALID_CAST_TO_GEOMETRY 错误。当转换结果类型为 MultiPoint 时,适用以下情况:● 如果要转换的表达式是结构良好的 Point 类型的几何图形,则函数结果是一个包含该 Point 作为其唯一元素的 MultiPoint。● 如果要转换的表达式是结构良好的 LineString 类型的几何图形,则函数结果是一个 MultiPoint,其中以相同顺序包含 LineString 中的点。● 如果要转换的表达式是结构良好的 MultiPoint 类型的几何图形,则函数的结果是该 MultiPoint。● 如果要进行转换的表达式是只包含点的类型为 GeometryCollection 的结构良好的几何图形,则函数结果是包含这些点的 MultiPoint。如果 GeometryCollection 为空或包含其他几何类型,就会出现 ER_INVALID_CAST_TO_GEOMETRY 错误。● 如果要转换的表达式是 Point、LineString、MultiPoint 或 GeometryCollection 类型之外的结构良好的几何图形,则会发生 ER_INVALID_CAST_TO_GEOMETRY 错误。当转换结果类型为 MultiLineString 时,适用以下情况:● 如果要转换的表达式是 LineString 类型的结构良好的几何图形,则函数的结果是包含该 LineString 作为其唯一元素的 MultiLineString。● 如果要进行转换的表达式是结构良好的 Polygon 类型的几何图形,则函数结果是一个 MultiLineString,其中包含 Polygon 的外环作为其第一个元素,任何内环作为其附加元素,以在表达式中出现的顺序进行添加。● 如果要转换的表达式是结构良好的 MultiLineString 类型的几何图形,则函数的结果是 MultiLineString。● 如果要进行转换的表达式是一个结构良好的类型为 MultiPolygon 的几何图形,只包含没有内环的多边形,则函数结果是一个 MultiLineString,其中包含多边形环,其顺序是多边形环在表达式中出现的顺序。如果表达式包含任何带有内环的多边形,则会出现 ER_WRONG_PARAMETERS_TO_STORED_FCT 错误。● 如果要转换的表达式是只包含 LineString 的结构良好的 GeometryCollection 类型的几何图形,则函数结果是包含这些 LineString 的 MultiLineString。如果表达式为空或包含其他几何类型,就会出现 ER_INVALID_CAST_TO_GEOMETRY 错误。● 如果要转换的表达式是 LineString、Polygon、MultiLineString、MultiPolygon 或 GeometryCollection 类型之外的结构良好的几何图形,则会发生 ER_INVALID_CAST_TO_GEOMETRY 错误。当转换结果类型为 MultiPolygon 时,适用以下情况:● 如果要转换的表达式是结构良好的 Polygon 类型的几何图形,则函数结果是包含 Polygon 作为其唯一元素的 MultiPolygon。● 如果要转换的表达式是结构良好的 MultiLineString 类型的几何图形,其中所有元素都是环,则函数结果是一个 MultiPolygon,它包含一个 Polygon,其中表达式的每个元素只有一个外环。如果任何元素不是一个环,就会出现 ER_INVALID_CAST_TO_GEOMETRY 错误。如果任何环没有正确的顺序(外部环必须是逆时针),会出现 ER_INVALID_CAST_POLYGON_RING_DIRECTION 错误。● 如果要转换的表达式是结构良好的 MultiPolygon 类型的几何图形,则函数结果为该 MultiPolygon。● 如果要转换的表达式是只包含多边形的结构良好的类型为 GeometryCollection 的几何图形,则函数结果是包含这些多边形的 MultiPolygon。如果表达式为空或包含其他几何类型,就会出现 ER_INVALID_CAST_TO_GEOMETRY 错误。● 如果要转换的表达式是除 Polygon、MultiLineString、MultiPolygon 或 GeometryCollection 以外的结构良好的几何类型,则会发生 ER_INVALID_CAST_TO_GEOMETRY 错误。对于转换为 GeometryCollection 类型的情况当转换结果类型为 GeometryCollection 时,适用以下情况:● GeometryCollection 和 GeomCollection 是同一结果类型的同义词。● 如果要进行转换的表达式是一个结构良好的 Point 类型的几何图形,则函数结果是一个包含该 Point 作为其唯一元素的 GeometryCollection。● 如果要转换的表达式是结构良好的 LineString 类型的几何图形,则函数结果是一个包含该 LineString 作为其唯一元素的 GeometryCollection。● 如果要进行转换的表达式是结构良好的 Polygon 类型的几何图形,则函数结果是一个包含该 Polygon 作为其唯一元素的 GeometryCollection。● 如果要进行转换的表达式是结构良好的 MultiPoint 类型的几何图形,则函数结果是一个 GeometryCollection,其中包含的点按它们在表达式中出现的顺序排列。● 如果要进行转换的表达式是结构良好的 MultiLineString 类型的几何图形,则函数结果是一个 GeometryCollection,其中包含 LineString,其顺序与它们在表达式中出现的顺序相同。● 如果要转换的表达式是结构良好的 MultiPolygon 类型的几何图形,则函数结果是一个 GeometryCollection,MultiPolygon 的元素以它们在表达式中出现的顺序包含其中。● 如果要转换的表达式是结构良好的 GeometryCollection 类型的几何图形,则函数的结果是该 GeometryCollection。https://dev.mysql.com/doc/refman/8.0/en/cast-functions.html