WHERE¶
WHERE子句以布尔表达式的形式声明一个或多个过滤条件。该子句通常指定点或边的多个属性值以过滤由前模式匹配子句或语句生成的结果。
语法¶
- where_clause
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 |
+--------------------------------------+------+