跳转至
开发版采用单机部署,无需产品 License 文件。需要多机部署或大规模性能测试? 了解企业版

WHERE

WHERE子句以布尔表达式的形式声明一个或多个过滤条件。该子句通常指定点或边的多个属性值以过滤由前模式匹配子句或语句生成的结果。

语法

where_clause
WHERE value_expression

where_clause ::=
    'WHERE' value_expression

参数

value_expression

充当过滤条件的布尔表达式。不满足条件的结果将被剔除。

更多信息,请参见布尔类型和表达式。

示例

以下示例假设临时图#movie_temporary_graph已创建并完成数据导入。

使用单个条件过滤

'''
USE #movie_temporary_graph {
    TABLE result_table TYPED TABLE {movie STRING, audience INT64, rate DOUBLE}

    MATCH (v@Movie)<-[e@Watch]-(u@`User`)
    WHERE e.rate > 3
    PER PATH {
        EXPORT v.name AS movie, u.id AS audience, e.rate AS rate INTO result_table
    }

    FOR r IN result_table
    RETURN r.movie AS movie, r.audience AS audience, r.rate AS rate
    ORDER BY r.movie ASC, r.audience ASC, r.rate DESC
    LIMIT 3
}
'''

返回:

+---------------+----------+------+
| movie         | audience | rate |
+---------------+----------+------+
| A Close Shave | 16       | 4.0  |
| A Close Shave | 18       | 4.0  |
| A Close Shave | 19       | 4.0  |
+---------------+----------+------+

使用多个条件过滤

'''
USE #movie_temporary_graph {
    TABLE result_table TYPED TABLE {movie STRING, rate DOUBLE} 

    MATCH (v@Movie)<-[e@Watch]-(u@`User`)
    WHERE e.rate > 2 AND u.id = 100
    PER PATH {
        EXPORT v.name AS movie, e.rate AS rate INTO result_table
    }

    FOR r IN result_table
    RETURN r.movie AS movie, r.rate AS rate
}
'''

返回:

+--------------------------------------+------+
| movie                                | rate |
+--------------------------------------+------+
| Pi                                   | 4.5  |
| William Shakespeare's Romeo & Juliet | 4.0  |
+--------------------------------------+------+