官术网_书友最值得收藏!

3.3.2 OPTIONAL MATCH語句

OPTIONAL MATCH語句用于搜索模式中描述的匹配項,對找不到的項用null代替。

3.3.2.1 簡介

OPTINAL MATCH匹配模式與MATCH類似。不同之處在于,如果沒有匹配到,OPTINAL MATCH將用null作為未匹配到部分的值。OPTINAL MATCH在Cypher中類似于SQL語句中的outer join。

記住,WHERE是模式描述的一部分,匹配的時候就會考慮到WHERE語句中的斷言,而不是匹配之后才考慮。這對于有多個OPTINAL MATCH語句的查詢尤其重要,一定要將屬于MATCH的WHERE語句與MATCH放在一起。

OPTINAL MATCH圖例如圖3-6所示。

圖3-6 OPTINAL MATCH圖例

3.3.2.2 可選關系

如果某個關系是可選的,可使用OPTINAL MATCH。這非常類似SQL中outer join的工作方式。如果關系存在就返回,否則在相應的地方返回null。

查詢:

結果返回了null,因為這個節點沒有外向關系。

結果:

3.3.2.3 可選元素的屬性

如果可選的元素為null,那么該元素的屬性也返回null。

查詢:

返回了x元素(查詢中為null),它的name屬性也為null。

結果:

3.3.2.4 可選關系類型

可在查詢中指定可選的關系類型。

查詢:

結果返回了null關系,因為該節點沒有ACTS_IN的外向關系。

結果:

主站蜘蛛池模板: 眉山市| 秭归县| 高安市| 临泽县| 罗平县| 印江| 黎平县| 滨州市| 梁河县| 汝阳县| 定日县| 柯坪县| 明溪县| 金秀| 太保市| 独山县| 黄陵县| 宁安市| 舟曲县| 怀仁县| 绵阳市| 湖北省| 新宁县| 班玛县| 太白县| 桐庐县| 嵊州市| 兴城市| 玉屏| 罗源县| 津南区| 赞皇县| 沛县| 夏邑县| 施秉县| 厦门市| 洛川县| 高平市| 商洛市| 泰安市| 湟源县|