MATCH (n:symptom) WHERE n.symName =~’.疼.’ RETURN n.symId, n.symName 我想做这样一个查询,但是疼要用函数的入参来替换,请问这要怎么实现呢,我的函数是go语言的,如果有其他语言的参考也可以~
go 语音不了解,最笨的办法你可以拼接 cypher 字符串啊,把参数拼进去, 如 var name=’.疼.’ ; var cypher ='MATCH (n:symptom) WHERE n.symName =~ +name + RETURN n.symId, n.symName’ 这样不行吗
@pangguoming 我也是遇到这个问题,非常需要您的帮忙谢谢
我程序里是这样写的
var = "Person"
data = graph.run(‘match (n:symp) where n.symp =~ var return n limit 5’)
我py2neo版本是3.x,python版本3.5 graph = Graph(…)
下面是我的报错信息
py2neo.database.status.CypherSyntaxError: Variable var
not defined (line 1, column 32 (offset: 31))
"match (N:symp) where N.symp =~ var return N limit 5"
期望得到您的回复,谢谢!
@pangguoming 非常感谢大神的回复 我试了下,好像达不到目的 代码如下 name = "牛黄清热胶囊" var = "中药" print(name) data = graph.run(‘match (n:中药) return n limit 5’).data() print(data)
var = "中药" print(name) data = graph.run(‘match (n:symp) where n.symp =~ “+var+” return n limit 5’).data() print(data) 结果如下: 牛黄清热胶囊 [{‘n’: (_970948:中药 {name: ‘\u675c\u82e5\u6563’})}, {‘n’: (_970951:中药 {name: ‘\u5973\u5a04\u83dc\u6839’})}, {‘n’: (_2197484:中药 {name: ‘\u6bdb\u6768\u6885\u6839\u76ae’})}, {‘n’: (_2197498:中药 {name: ‘\u4e9a\u5b9d\u4e00\u6e05\u6ef4\u4e38’})}, {‘n’: (_2197500:中药 {name: ‘\u91d1\u53f6\u8fc7\u8def\u9ec4’})}] 牛黄清热胶囊 [] 就是说字符串拼接的没有查到结果,希望能得到您的继续帮助,谢谢! 感觉是label(symp)并不是节点的一个属性,好像不能用这种 . (点操作),
@liutianling Python里是单引号 data = graph.run(‘match (n:symp) where n.symp =~ ‘+var+’ return n limit 5’).data()
@pangguoming再次感谢您的回复 label = '中药’ data = graph.run(‘match (n) where n:中药 return n limit 5’).data() print("haha: ", data) haha: [{‘n’: (_970948:中药 {name: ‘\u675c\u82e5\u6563’})}, {‘n’: (_970951:中药 {name: ‘\u5973\u5a04\u83dc\u6839’})}, …]
这样写没有问题,可以查询到结果 data = graph.run(‘match (n:symp) where n.symp =~ ‘+label+’ return n limit 5’).data() print("haha: ", data) 加双引号不报错,但是查询不到任何结果
data = graph.run(‘match (n:symp) where n.symp =~ ‘+label+’ return n limit 5’).data()
print("haha: ", data)
加单引号会报错:
neo4j.exceptions.CypherSyntaxError: Variable 中药
not defined (line 1, column 32 (offset: 31))
"match (n:symp) where n.symp =~ 中药 return n limit 5"
不知道这是什么情况,谢谢您。。。