![精通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=1739285327-NOlDJ0HHD5PeEs7dngSbfBWH334oLen1-0-32905732d86a415ea2c3025cd1ca1416)
图3-17 RETURN图例
3.3.14.1 返回节点
返回匹配到的节点,如下所示。
查询:
![](https://epubservercos.yuewen.com/84FE89/26581284601284906/epubprivate/OEBPS/Images/Figure-P186_102779.jpg?sign=1739285327-KW05TYlasLNWRvy9o8NOJUAO6L4ZVtHX-0-5ddd5c352de958bbcfeebe28fb76a08f)
本例中返回包含name属性值为B的节点。
结果:
![](https://epubservercos.yuewen.com/84FE89/26581284601284906/epubprivate/OEBPS/Images/Figure-P186_102783.jpg?sign=1739285327-0bqB3nO9JMcJz17AsZ4nmr2HMUMxc9zO-0-66fc9a8d17c0a606059d05bc45b1fae1)
3.3.14.2 返回关系
返回匹配的关系,如下所示。
查询:
![](https://epubservercos.yuewen.com/84FE89/26581284601284906/epubprivate/OEBPS/Images/Figure-P186_102780.jpg?sign=1739285327-h6KSUMFUABmJDkCy9VPcsFL9JnxycLxQ-0-237c7c1326a9fff94d6bd2f21910b329)
本例中返回了关系。
结果:
![](https://epubservercos.yuewen.com/84FE89/26581284601284906/epubprivate/OEBPS/Images/Figure-P186_101859.jpg?sign=1739285327-qSl2bmdg58FZ0eks3JmFKd1cfwn7eZjP-0-69fa0d3e05d0ed8baa8373a5e345e889)
3.3.14.3 返回属性
返回属性可以用点来引用属性,如下所示。
查询:
![](https://epubservercos.yuewen.com/84FE89/26581284601284906/epubprivate/OEBPS/Images/Figure-P186_102781.jpg?sign=1739285327-DREbRjHioEy4fPEY9clo7W97rjOqAfzK-0-6f53738e806fcad5383f9340c30bdc1e)
本例中返回了name属性的值。
结果:
![](https://epubservercos.yuewen.com/84FE89/26581284601284906/epubprivate/OEBPS/Images/Figure-P187_101862.jpg?sign=1739285327-A6PvRhGeybsn19slnGncLewnFLbY6LNs-0-8662533bc488491671d1f0a9546f96cd)
3.3.14.4 返回所有元素
当希望返回查询中找到的所有节点、关系和路径时,可以使用星号*表示。如下所示。
查询:
![](https://epubservercos.yuewen.com/84FE89/26581284601284906/epubprivate/OEBPS/Images/Figure-P187_102787.jpg?sign=1739285327-8k0PToKUdDxsc8f3EIEru2OFQ64mcsgQ-0-6acbb805b5dc49995d94e02ab7767b0e)
本例中返回了两个节点、关系和路径。
结果:
![](https://epubservercos.yuewen.com/84FE89/26581284601284906/epubprivate/OEBPS/Images/Figure-P187_101865.jpg?sign=1739285327-gv4XiwTooJeAk3Mpkmw83X3SQcn9Vgzc-0-4c8c8f7658b9a1f7792bea5154c5ae88)
3.3.14.5 变量中的特殊字符
如果想使用空格等特殊字符,可以用反引号“`”将其括起来,如下所示。
查询:
![](https://epubservercos.yuewen.com/84FE89/26581284601284906/epubprivate/OEBPS/Images/Figure-P187_102788.jpg?sign=1739285327-kAivmgrWVunmNIbC0TRopNfzAKJXpjth-0-092f2e61c46d9c4d4785556a745d780d)
结果将返回name属性值为A的节点。
结果:
![](https://epubservercos.yuewen.com/84FE89/26581284601284906/epubprivate/OEBPS/Images/Figure-P187_101868.jpg?sign=1739285327-BQvfxd7rG9Ec6EFC7kwDpDbl6BW1dcOh-0-d74a31c47fb0417b6617c8b489b03cd9)
3.3.14.6 列别名
如果希望列名不同于表达式中使用的名字,可以使用AS<new name>对其重命名。
查询:
![](https://epubservercos.yuewen.com/84FE89/26581284601284906/epubprivate/OEBPS/Images/Figure-P188_102789.jpg?sign=1739285327-2eVlnXFZs0qp9UvTHA19ToRbvJ0WdIbg-0-4bb093597cfbd27903bb8bf2b5fd2ad1)
结果将返回节点的age属性,但列名由原有的age重命名为SomethingTotallyDifferent了。
结果:
![](https://epubservercos.yuewen.com/84FE89/26581284601284906/epubprivate/OEBPS/Images/Figure-P188_101871.jpg?sign=1739285327-ch7AUcxwS6e0ACk46efmmeg99lJ298yl-0-06253a05c7c2712b61c7bdd0c1d5ee26)
3.3.14.7 可选属性
如果某个属性可能存在,也可能不存在。这时,依然可以正常地去查询,对于不存在的属性,Cypher则返回null。
查询:
![](https://epubservercos.yuewen.com/84FE89/26581284601284906/epubprivate/OEBPS/Images/Figure-P188_102790.jpg?sign=1739285327-rl7vNYFjpWOVHp2UZOc4AAls3gqXMecI-0-edd9bef86777d7cfba14749698b71ede)
本例中有age属性的节点返回了具体的年龄,而没有这个属性的节点则返回null。
结果:
![](https://epubservercos.yuewen.com/84FE89/26581284601284906/epubprivate/OEBPS/Images/Figure-P188_101874.jpg?sign=1739285327-qZysnUPlH00me3Wv2KMlpBPYksAQL3mt-0-ee3f4d3681c4b1641fbfef64ef7584f7)
3.3.14.8 其他表达式
任何表达式都可以作为返回项,如字面值、断言、属性、函数和任何其他表达式。
查询:
![](https://epubservercos.yuewen.com/84FE89/26581284601284906/epubprivate/OEBPS/Images/Figure-P188_102791.jpg?sign=1739285327-povv3CrvGVcoRD93KQTtOYxdh1DBdFVq-0-46cf6a8f17e8149bec9b54809ea38c50)
本例中返回了断言、字符串和带模式表达参数的函数调用。
结果:
![](https://epubservercos.yuewen.com/84FE89/26581284601284906/epubprivate/OEBPS/Images/Figure-P188_101877.jpg?sign=1739285327-RGy7GpcijV0a0olBPxcMPn3Oqwar3s3a-0-b56f982a3e5751505b586cd03061b83d)
3.3.14.9 唯一性结果
DISTINCT用于仅仅获取结果集中所依赖列的唯一行。
查询:
![](https://epubservercos.yuewen.com/84FE89/26581284601284906/epubprivate/OEBPS/Images/Figure-P189_102792.jpg?sign=1739285327-tjmdwbj17VXiCALM83pfnAzYxYKpG3p3-0-b3a3b8b8308f2c7e2555da763bdbd971)
本例中只返回了一次name为B的节点。
结果:
![](https://epubservercos.yuewen.com/84FE89/26581284601284906/epubprivate/OEBPS/Images/Figure-P189_101880.jpg?sign=1739285327-RFaJqgs2cQx0HUJ0k8sh0jGLoVbXg0z2-0-ff344b8399896fbf3dba6b1515e6a9b3)