![精通Neo4j](https://wfqqreader-1252317822.image.myqcloud.com/cover/113/47216113/b_47216113.jpg)
上QQ阅读APP看书,第一时间看更新
3.3.14 RETURN语句
RETURN语句定义了查询结果集中返回的内容。在查询的RETURN部分定义了模式中感兴趣的部分。它可以是节点、关系或者是它们的属性。RETURN图例如图3-17所示。
提示:如果只需要属性值,就要尽量避免返回整个节点或关系,这样有助于提高性能。
![](https://epubservercos.yuewen.com/84FE89/26581284601284906/epubprivate/OEBPS/Images/Figure-P186_91517.jpg?sign=1739084748-3E6y9uX0C955DLt3C7UN3wRlRHB69OIm-0-a6640c07f14d12ef7f590af16f584d38)
图3-17 RETURN图例
3.3.14.1 返回节点
返回匹配到的节点,如下所示。
查询:
![](https://epubservercos.yuewen.com/84FE89/26581284601284906/epubprivate/OEBPS/Images/Figure-P186_102779.jpg?sign=1739084748-e5cJuj0GVIHCq3SGVQCdRDx4FlbxbRi7-0-4a4973d5e95c4aeb96c785e5bda78d2a)
本例中返回包含name属性值为B的节点。
结果:
![](https://epubservercos.yuewen.com/84FE89/26581284601284906/epubprivate/OEBPS/Images/Figure-P186_102783.jpg?sign=1739084748-flXi8zrb5JhFsbot0teDZKBDGFsvYt9L-0-99f2273013a7c609ba9aae1c0c2d2d31)
3.3.14.2 返回关系
返回匹配的关系,如下所示。
查询:
![](https://epubservercos.yuewen.com/84FE89/26581284601284906/epubprivate/OEBPS/Images/Figure-P186_102780.jpg?sign=1739084748-3cuJ9IuERNTSbG7GoFKeBtTAlNnsXaeg-0-a71aaf50618e6c07b76912c442a295ea)
本例中返回了关系。
结果:
![](https://epubservercos.yuewen.com/84FE89/26581284601284906/epubprivate/OEBPS/Images/Figure-P186_101859.jpg?sign=1739084748-9jXwb1ITNh9O9YQ42IYspk9fACihNMqK-0-c507306466a16df3a2f1c6cbd26fb0e5)
3.3.14.3 返回属性
返回属性可以用点来引用属性,如下所示。
查询:
![](https://epubservercos.yuewen.com/84FE89/26581284601284906/epubprivate/OEBPS/Images/Figure-P186_102781.jpg?sign=1739084748-BKgWCcYwvQCvd6hDLuTaU7IwiorwBfBZ-0-831e5ad7d90d2d7d362979cd1b665253)
本例中返回了name属性的值。
结果:
![](https://epubservercos.yuewen.com/84FE89/26581284601284906/epubprivate/OEBPS/Images/Figure-P187_101862.jpg?sign=1739084748-s0d3efV2SQ0rBs6oVTQT1kwsuiiWB8ms-0-2e5bfe95124d597af748e8823ca3772a)
3.3.14.4 返回所有元素
当希望返回查询中找到的所有节点、关系和路径时,可以使用星号*表示。如下所示。
查询:
![](https://epubservercos.yuewen.com/84FE89/26581284601284906/epubprivate/OEBPS/Images/Figure-P187_102787.jpg?sign=1739084748-2e3789qasEBRgsmRH3IA2ae8yJBcaWFU-0-33cbee89e956119490ac49a5e4679c09)
本例中返回了两个节点、关系和路径。
结果:
![](https://epubservercos.yuewen.com/84FE89/26581284601284906/epubprivate/OEBPS/Images/Figure-P187_101865.jpg?sign=1739084748-1P7ACXgKmIcSpbNLmAETVPH7BOxujqr3-0-e09068ffe4541782f856a6dc97a3a579)
3.3.14.5 变量中的特殊字符
如果想使用空格等特殊字符,可以用反引号“`”将其括起来,如下所示。
查询:
![](https://epubservercos.yuewen.com/84FE89/26581284601284906/epubprivate/OEBPS/Images/Figure-P187_102788.jpg?sign=1739084748-ttER0ED5kUgDmE4rVEtwIBLhfxB6iNqe-0-eee306bf5174b88822bd136dcfcca661)
结果将返回name属性值为A的节点。
结果:
![](https://epubservercos.yuewen.com/84FE89/26581284601284906/epubprivate/OEBPS/Images/Figure-P187_101868.jpg?sign=1739084748-DOUEl7ENmGaw61CaOG1hkns1hhT1itqh-0-2bb6f1b302fa0e1a435ab13d47c5d61e)
3.3.14.6 列别名
如果希望列名不同于表达式中使用的名字,可以使用AS<new name>对其重命名。
查询:
![](https://epubservercos.yuewen.com/84FE89/26581284601284906/epubprivate/OEBPS/Images/Figure-P188_102789.jpg?sign=1739084748-8YKvgi8w3OnwxJncUbe1R8b5N1msd0kI-0-80de7ea2333146da97eeb0d834579676)
结果将返回节点的age属性,但列名由原有的age重命名为SomethingTotallyDifferent了。
结果:
![](https://epubservercos.yuewen.com/84FE89/26581284601284906/epubprivate/OEBPS/Images/Figure-P188_101871.jpg?sign=1739084748-EipQFB9rK31AZYv76URjREJ9zxtuizGs-0-fbe187e3c620ca74c10362e075ebf6a3)
3.3.14.7 可选属性
如果某个属性可能存在,也可能不存在。这时,依然可以正常地去查询,对于不存在的属性,Cypher则返回null。
查询:
![](https://epubservercos.yuewen.com/84FE89/26581284601284906/epubprivate/OEBPS/Images/Figure-P188_102790.jpg?sign=1739084748-k1EYcGBgm8pmH1GxJs7S4Mi3F0Jzfwh7-0-5a168ae0f1a8a64484bf7926bcda9dcb)
本例中有age属性的节点返回了具体的年龄,而没有这个属性的节点则返回null。
结果:
![](https://epubservercos.yuewen.com/84FE89/26581284601284906/epubprivate/OEBPS/Images/Figure-P188_101874.jpg?sign=1739084748-OJfdR7wDmbM16dHBwe8FajudJXqUF9RX-0-c5a3d2c10acda05e0c72bdc856112eea)
3.3.14.8 其他表达式
任何表达式都可以作为返回项,如字面值、断言、属性、函数和任何其他表达式。
查询:
![](https://epubservercos.yuewen.com/84FE89/26581284601284906/epubprivate/OEBPS/Images/Figure-P188_102791.jpg?sign=1739084748-her1FeEMbYM9beqC06mY6E1eaIsyWer4-0-45aa1f91b9a67e6b2be3cfed2f733dbc)
本例中返回了断言、字符串和带模式表达参数的函数调用。
结果:
![](https://epubservercos.yuewen.com/84FE89/26581284601284906/epubprivate/OEBPS/Images/Figure-P188_101877.jpg?sign=1739084748-F7JZ3vOh6SGf5J5l9S5G2NUCub6vWdH5-0-3a31a11a6162b67c8a4aab9c92405d84)
3.3.14.9 唯一性结果
DISTINCT用于仅仅获取结果集中所依赖列的唯一行。
查询:
![](https://epubservercos.yuewen.com/84FE89/26581284601284906/epubprivate/OEBPS/Images/Figure-P189_102792.jpg?sign=1739084748-nmZIForMzOE2QFaeeUMOGxG3vPMbzXuv-0-49d6e17bbecc797a26dc35f5d0a70aee)
本例中只返回了一次name为B的节点。
结果:
![](https://epubservercos.yuewen.com/84FE89/26581284601284906/epubprivate/OEBPS/Images/Figure-P189_101880.jpg?sign=1739084748-Zqdgmo3tCBs2ldVbUJUb6dmlhylWS9Bz-0-74fa4871f03178e046562fe08cbef65b)