首页 > 解决方案 > 多个条件和查询 cypher / 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 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

有没有办法根据多个条件执行多个查询?在第一个语句中没有中断

标签: graphneo4jcypherneo4j-apoc

解决方案


在每个 CALL apoc.do.when 之间使用 UNION。


推荐阅读