Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Graph 多重条件&;查询密码/apoc_Graph_Neo4j_Cypher_Neo4j Apoc - Fatal编程技术网

Graph 多重条件&;查询密码/apoc

Graph 多重条件&;查询密码/apoc,graph,neo4j,cypher,neo4j-apoc,Graph,Neo4j,Cypher,Neo4j Apoc,我运行以下查询以使用多个apoc.do.when,但似乎只有我的第一个apoc.do.when正在执行 load csv from "file:///D:leads.csv" as row FIELDTERMINATOR ',' WITH row[0] as id, row[1] as fname, row[2] as lname, row[4] as email1, row[5] as email2, row[6] as phone1, row[7] as phone2, row[8] as

我运行以下查询以使用多个apoc.do.when,但似乎只有我的第一个apoc.do.when正在执行

load csv from "file:///D:leads.csv"
as row
FIELDTERMINATOR ',' 
WITH row[0] as id,
row[1] as fname,
row[2] as lname,
row[4] as email1,
row[5] as email2,
row[6] as phone1,
row[7] as phone2,
row[8] as phone3,
split(row[11]," ") as birthDay
LIMIT 5

MERGE (l:Lead {id:id})
with l as leadRef,email1,email2,phone1,phone2,phone3,fname,lname,id

CALL apoc.do.when(email1 is not null,'MERGE (e1:Email {value:email}) MERGE (l)-[r:Has_Email]-> 
(e1)','',{email:email1,l:leadRef}) YIELD value WITH value AS 
ignored,leadRef,email1,email2,phone1,phone2,phone3,fname,lname,id

CALL apoc.do.when(phone1 is not null,'MERGE (p1:Phone {value:phone}) MERGE (l)-[r:Has_Phone]-> 
(p1)','',{phone:phone1,l:leadRef}) YIELD value WITH value AS 
ignored2,leadRef,email1,email2,phone1,phone2,phone3,fname,lname,id

CALL apoc.do.when(phone2 is not null,'MERGE (p2:Phone {value:phone}) MERGE (l)-[r:Has_Phone]-> 
(p2)','',{phone:phone2,l:leadRef}) YIELD value WITH value AS 
ignored3,leadRef,email1,email2,phone1,phone2,phone3,fname,lname,id

return true

是否有一种基于多个条件执行多个查询的方法?不中断第一个语句

利用每次调用apoc.do.when之间的联合。

您可以尝试apoc.do.case。当
phone1
/
phone2
分别为空时,您的第二个/第三个
apoc.do.when
调用不应该执行任何操作。