当我尝试的时候:
CALL apoc.load.jdbc('jdbc:mysql://localhost/mysql?user=root&password=root&useUnicode=true&characterEncoding=utf8','select * from db')YIELD row
WHERE row.label = 'dis' MERGE (n:dis {name: row.keyword})
WHERE row.label = 'part' MERGE (n:part {name: row.keyword})
并且有一个错误
Neo.ClientError.Statement.SyntaxError: Invalid input 'H': expected 'i/I'
发布于 2020-02-26 20:52:35
您可以使用apoc函数来执行此操作
CALL apoc.merge.node(['Label'], identProps:{key:value, …}, onCreateProps:{key:value,…}, onMatchProps:{key:value,…}})
以下查询将动态读取标签名称并将节点与各自的标签合并
CALL apoc.load.jdbc('jdbc:mysql://localhost/mysql?user=root&password=root&useUnicode=true&characterEncoding=utf8','select * from db')YIELD row
CALL apoc.merge.node([row.label], identProps:{name:row.keyword}, onCreateProps:{}, onMatchProps:{}}) YIELD node
RETURN node
发布于 2020-02-28 02:51:15
如果您打算匹配具有特定标签节点,那么您可能应该使用MATCH (:label)
子句而不是WHERE label = ...
CALL apoc.load.jdbc('jdbc:mysql://localhost/mysql?user=root&password=root&useUnicode=true&characterEncoding=utf8','select * from db')YIELD row
OPTIONAL MATCH (row:dis) MERGE (n:dis {name: row.keyword})
OPTIONAL MATCH (row:part) MERGE (n:part {name: row.keyword})
https://stackoverflow.com/questions/60411310
复制相似问题