好,我必须运行以下查询(在Docker上为Neo4j Commed。3.0.12版)
注意的是,日历名称的格式未知:
1)名字+“” +姓氏+“-” +专业化
2)姓氏+“” +姓氏+“-” +专业化
:PARAM name: "Di Pietro Chiara - Gynecologist"
MERGE (_200:`person` {`lastname`: "Di Pietro", `firstname`: "Chiara", `birthdate`: "1984/03/25"})
MERGE (_cal_445:`calendar` { :`X-VR-CALNAME` = $name })-[:`belongs_to a`]-(_per_445:`person`)
WHERE $name = _per_445.firstname + " " + _per_445.lastname
OR $name = (_per_445.nome + " " + _per_445.cognome)
RETURN _cal_445, _per_445
查询和一些其他变体无法运行。有时返回错误,有时破坏屏幕上的浏览器布局,
当然有什么问题,但是我找不到并纠正。 面对两种倒置格式的部分:如何进行优化? 为什么PARAM声明会产生错误?
任何帮助将不胜感激。
答案 0 :(得分:0)
这部分查询无效:
MERGE (_cal_445:`calendar` { :`X-VR-CALNAME` = $name })
您应该将其替换为:
MERGE (_cal_445:`calendar` { `:X-VR-CALNAME`:$name })
此外,您正在使用MERGE
子句中的值$name
进行WHERE
。只是不允许...
如果您将匹配项替换为匹配项,则查询将起作用:
MERGE (_200:`person` {`lastname`: "Di Pietro", `firstname`: "Chiara", `birthdate`: "1984/03/25"})
WITH _200
MATCH (_cal_445:`calendar` { `:X-VR-CALNAME`: $name })-[:`belongs_to a`]-(_per_445:`person`)
WHERE $name = _per_445.firstname + " " + _per_445.lastname
OR $name = (_per_445.nome + " " + _per_445.cognome)
RETURN _cal_445, _per_445