MATCH cümlesinde olduğu gibi MERGE cümlesinde virgül var mı?
Aug 18 2020
Aşağıdakiler neo4j 4'te iyi çalışıyor:
MATCH (a)-->(b)<--(c), (b)-->(d)
RETURN a
Ancak aşağıdakiler bir hata döndürür:
MERGE (a)-->(b)<--(c), (b)-->(d)
RETURN a
Hata metni: Neo.ClientError.Statement.SyntaxError
Invalid input ',': expected whitespace, a relationship pattern, ON, FROM GRAPH, USE GRAPH, CONSTRUCT, LOAD CSV, START, MATCH, UNWIND, MERGE, CREATE UNIQUE, CREATE, SET, DELETE, REMOVE, FOREACH, WITH, CALL, RETURN, UNION, ';' or end of input (line 1, column 22 (offset: 21))
"MERGE (a)-->(b)<--(c), (b)-->(d)"
^
Doğru anlarsam, birleştirme, bir üst düzey yükseltme işlevi sağlar. Ancak birleştirme, eşleştirme yeteneği açısından eşleşmeden daha mı kısıtlı? Virgülle ayırma gerektiren karmaşık doğrusal olmayan desenleri nasıl birleştiririm ?
Yanıtlar
1 cybersam Aug 18 2020 at 18:36
Tüm MERGE
eğer desen oluşturulacak herhangi desende öğesi henüz mevcut değil. Bu nedenle, güvende olmak için, her MERGE
desende var olmayabilecek yalnızca bir öğe olduğundan emin olmalısınız .
Bu nedenle, MERGE
kalıpları yalnızca tek bir terimle desteklemek mantıklıdır .
Örneğin, bunun yerine (zaten yasal Cypher değildir):
MERGE
(a:Foo {id: 'a'})-[:BAR]->(b:Foo {id: 'b'})<-[:BAR]-(c:Foo {id: 'c'}),
(b)-[:BAR]->(d:Foo {id: 'd'})
RETURN a
bunu gerçekten yapmalısın:
MERGE (a:Foo {id: 'a'})
MERGE (b:Foo {id: 'b'})
MERGE (c:Foo {id: 'c'})
MERGE (d:Foo {id: 'd'})
MERGE (a)-[:BAR]->(b)
MERGE (b)<-[:BAR]-(c)
MERGE (b)-[:BAR]->(d)
RETURN a
Donovan, Şarkılarından 1'ini The Beatles'ın "Lucy in the Sky with Diamonds" şarkısıyla karşılaştırdı
Gene Simmons, KISS Çizgi Romanlarının Potansiyel Olarak "İnsanlığı Yeniden Yaratabileceğini" Söyledi
Kevin Jonas'ın Kızı Alena, Doğum Günü Fotoğrafında Büyümüş Görünüyor: '9 Yaşında Gerçek Hissetmiyor'
Tom Girardi Dolandırıcılık Suçlamalarından Yargılanma Yetkisinin Belirlenmesi İçin Duruşmaya Katıldı