名前

= — Aのバウンダリボックスが,Bのバウンダリボックスと同じ場合にTRUEを返します.

概要

boolean =( geometry A , geometry B );

boolean =( geography A , geography B );

説明

=演算子は,ジオメトリ/ジオグラフィAのバウンダリボックスが,Bのバウンダリボックスと同じ場合にTRUEを返します. PostgreSQLは,ジオメトリが内部の並べ替えの実行やジオメトリの比較を行うために定義した=, <, >演算子を使います(GROUP BYやORDER BY節).

[警告]

この節は多数の混乱の元です.geometryA = geometryBの比較を行うと,ジオメトリが明確に異なっていたとしても,バウンディングボックスが同じならTRUEが返ります.本当の等価性をチェックするには ST_OrderingEqualsまたはST_Equalsを使います.

[注意]

この演算子はジオメトリで使用できるインデクスを*使いません*.

このメソッドは曲線ストリングと曲線をサポートします.

SELECT 'LINESTRING(0 0, 0 1, 1 0)'::geometry = 'LINESTRING(1 1, 0 0)'::geometry;
 ?column?
----------
 t
(1 row)

SELECT ST_AsText(column1)
FROM ( VALUES
	('LINESTRING(0 0, 1 1)'::geometry),
	('LINESTRING(1 1, 0 0)'::geometry)) AS foo;
	  st_astext
---------------------
 LINESTRING(0 0,1 1)
 LINESTRING(1 1,0 0)
(2 rows)

-- Note: the GROUP BY uses the "=" to compare for geometry equivalency.
SELECT ST_AsText(column1)
FROM ( VALUES
	('LINESTRING(0 0, 1 1)'::geometry),
	('LINESTRING(1 1, 0 0)'::geometry)) AS foo
GROUP BY column1;
	  st_astext
---------------------
 LINESTRING(0 0,1 1)
(1 row)

関連情報

ST_Equals, ST_OrderingEquals, ~=