WHERE 语法

目前,WHERE 语句仅适用于 GO 语句。

  1. WHERE <expression> [ AND | OR <expression> ...])

通常,筛选条件是关于节点、边的表达式的逻辑组合。

作为语法糖,逻辑与可用 AND&&,同理,逻辑或可用 OR|| 表示。

示例

  1. -- follow degree 属性大于 90
  2. nebula> GO FROM 100 OVER follow WHERE follow.degree > 90;
  3. -- 返回以下值:
  4. ===============
  5. | follow._dst |
  6. ===============
  7. | 101 |
  8. ---------------
  9. -- 找到与起点 player 104 age 值相等的点。
  10. nebula> GO FROM 104 OVER follow WHERE $^.player.age == $$.player.age;
  11. -- 返回以下值:
  12. ===============
  13. | follow._dst |
  14. ===============
  15. | 103 |
  16. ---------------
  17. -- 多种逻辑组合。
  18. nebula> GO FROM 100 OVER follow WHERE follow.degree > 90 OR $$.player.age != 33 AND $$.player.name != "Tony Parker";
  19. -- 返回以下值:
  20. ===============
  21. | follow._dst |
  22. ===============
  23. | 101 |
  24. ---------------
  25. | 106 |
  26. ---------------
  27. --下面 WHERE 语句中的条件总是为 TRUE
  28. nebula> GO FROM 101 OVER follow WHERE 1 == 1 OR TRUE;
  29. -- 返回以下值:
  30. ===============
  31. | follow._dst |
  32. ===============
  33. | 100 |
  34. ---------------
  35. | 102 |
  36. ---------------