美文网首页数据库Neo4j数据库
Neo4j数据库学习四:where子句

Neo4j数据库学习四:where子句

作者: 陆_志东 | 来源:发表于2018-09-13 16:54 被阅读1次

    语法:

    简单的语法
    WHERE <condition>
    
    使用布尔运算符连接多个条件
    WHERE <condition> <boolean-operator> <condition>
    
     <condition> 书写格式
    <property-name> <comparison-operator> <value>
    
    <boolean-operator>:布尔运算符
    <comparison-operator> :比较运算符
    

    布尔运算符

    - and 与
    - or 或
    - not 非
    - xor 异或
    

    比较运算符

    - = 等于
    - <> 不等
    - < 小于
    - > 大于
    - <= 大于等于
    - >= 小于等于
    

    示例:

    match(e:Customer) return e.name,e.id,e.dob
    ╒════════╤══════╤════════════╕
    │"e.name"│"e.id"│"e.dob"     │
    ╞════════╪══════╪════════════╡
    │"Abc"   │"1001"│"01/10/2015"│
    ├────────┼──────┼────────────┤
    │null    │null  │null        │
    └────────┴──────┴────────────┘
    
    match(e:Customer) where not e.name is null return e.name,e.id,e.dob
    
    ╒════════╤══════╤════════════╕
    │"e.name"│"e.id"│"e.dob"     │
    ╞════════╪══════╪════════════╡
    │"Abc"   │"1001"│"01/10/2015"│
    └────────┴──────┴────────────┘
    
    match(e:Customer) where  e.name is not null return e.name,e.id,e.dob
    ╒════════╤══════╤════════════╕
    │"e.name"│"e.id"│"e.dob"     │
    ╞════════╪══════╪════════════╡
    │"Abc"   │"1001"│"01/10/2015"│
    └────────┴──────┴────────────┘
    
    create (e:Customer {name:"nick",id:"1",dob:"06/12/2018"})
    注意创建节点的时候,不能把属性{} 写到() 外面,属性key也不能带引号
    
    match(e:Customer) where  e.name is not null return e.name,e.id,e.dob
    ╒════════╤══════╤════════════╕
    │"e.name"│"e.id"│"e.dob"     │
    ╞════════╪══════╪════════════╡
    │"Abc"   │"1001"│"01/10/2015"│
    ├────────┼──────┼────────────┤
    │"nick"  │"1"   │"06/12/2018"│
    └────────┴──────┴────────────┘
    
    match(e:Customer) where  e.name <> "Abc" return e.name,e.id,e.dob
    ╒════════╤══════╤════════════╕
    │"e.name"│"e.id"│"e.dob"     │
    ╞════════╪══════╪════════════╡
    │"nick"  │"1"   │"06/12/2018"│
    └────────┴──────┴────────────┘
    

    注意:null不能用比较运算符判断,应该用is, 还有上面可以对判断的结果取反not,也可以is not null,但是不能not is null

    结合where 子句创建关系

    语法:

    MATCH (<node1-name>:<node1-label-name>),(<node2-name>:<node2-label-name>) 
    WHERE <condition>
    CREATE (<node1-name>)-[<relationship-label-name>:<relationship-name>
           {<relationship-properties>}]-><node2-name>) 
    

    示例

    match(e:Customer),(cc:CreditCard) where e.name="nick" and cc.id = "5001" return e,cc
    ╒═══════════════════════════════════════════╤════════════════════════════════════════════════════════════════════╕
    │"e"                                        │"cc"                                                                │
    ╞═══════════════════════════════════════════╪════════════════════════════════════════════════════════════════════╡
    │{"name":"nick","dob":"06/12/2018","id":"1"}│{"number":"1234567890","cvv":"888","expiredate":"20/17","id":"5001"}│
    └───────────────────────────────────────────┴────────────────────────────────────────────────────────────────────┘
    
    match(e:Customer),(cc:CreditCard) 
    where e.name="nick" and cc.id = "5001" 
    create (e)-[shop:ShoppingWithCard {date:"2018-09-13",money:"1000"}]->(cc)
    
    

    相关文章

      网友评论

        本文标题:Neo4j数据库学习四:where子句

        本文链接:https://www.haomeiwen.com/subject/iiowgftx.html