ST_CONTAINS函數用來判斷value1對應的地理對象是否包含value2對應的地理對象。
命令格式
BOOLEAN ST_CONTAINS(GEOGRAPHY <value1>, GEOGRAPHY <value2>)參數說明
value1、value2:必填。GEOGRAPHY資料類型的地理對象。可根據需求使用ST_GEOGPOINT、ST_GEOGFROMWKB、ST_GEOGFROMTEXT、ST_MAKELINE和ST_MAKEPOLYGON函數來構造GEOGRAPHY類型對象。
傳回值說明
返回BOOLEAN類型。返回規則如下:
若value2所對應的地理對象的每一個點都被包含到value1所對應的地理對象中,則返回TRUE;否則返回FALSE。
若value1或value2為空白的地理對象,則返回FALSE。
一個地理對象是不包含它的邊界節點的。
使用樣本
判斷多邊形 POLYGON((0 0, 10 0, 10 10, 0 10, 0 0))是否分別包含位於多邊形外部、邊界和內部的三個點 (20, 20)、(0, 0) 和 (5, 5)。
-- 返回TRUE,因為POINT(5 5)在POLYGON內部
SELECT ST_CONTAINS(ST_GEOGFROMTEXT('POLYGON((0 0, 10 0, 10 10, 0 10, 0 0))'), ST_GEOGFROMTEXT('POINT(5 5)'));
-- 返回FALSE,因為POINT(20 20)在POLYGON外部
SELECT ST_CONTAINS(ST_GEOGFROMTEXT('POLYGON((0 0, 10 0, 10 10, 0 10, 0 0))'), ST_GEOGFROMTEXT('POINT(20 20)'));
-- 返回FALSE,因為POINT(0 0)在POLYGON邊界上
SELECT ST_CONTAINS(ST_GEOGFROMTEXT('POLYGON((0 0, 10 0, 10 10, 0 10, 0 0))'), ST_GEOGFROMTEXT('POINT(0 0)'));