[英]Condition checking in cypher (neo4j)
我運行以下代碼。 如果它與我的“u”節點存在關系,我想從 USER_PHONE 節點獲取“電話”屬性。 但我無法分配變量來獲取它。 如果我將第一行修改為: (phone)<--(u:USER)-[:friend]-(p:USER)-[i:interested_in]->(p0:INTEREST{name:'Tiếng Anh'})
. 然后對滿足條件 if ( (u)-->(:USER_PHONE)
) 的節點重復返回結果兩次。 有人能幫我嗎?
match (u:USER)-[:friend]-(p:USER)-[i:interested_in]->(p0:INTEREST{name:'Tiếng Anh'})
return id(u), u.FB_ID, sum(toInteger(i.strength)*p.ai_pagerank2) as CII,
CASE u
WHEN (u)-->(phone:USER_PHONE) THEN phone.phone
ELSE NULL
END as num_phone order by num_phone ASC limit 100
這是我得到的錯誤
PatternExpressions are not allowed to introduce new variables: 'phone'. (line 4, column 15 (offset: 183))
" WHEN (u)-->(phone:USER_PHONE) THEN phone.phone"
你可以做“可選匹配”。 這是有關它的文檔: https://neo4j.com/docs/cypher-manual/current/clauses/optional-match/
match (u:USER)-[:friend]-(p:USER)-[i:interested_in]->(p0:INTEREST{name:'Tiếng Anh'})
with u, i, p
optional match (u)-->(userPhone:USER_PHONE)
return id(u), u.FB_ID, sum(toInteger(i.strength)*p.ai_pagerank2) as CII,
userPhone.phone as num_phone order by num_phone ASC limit 100
如果 null,則無需檢查電話,因為如果電話號碼不存在,它將返回 null。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.