我对这项技术非常陌生。我正试图防止某个值低于0且高于1。并且如果不存在关系来设置该值
我已经尝试过了:
MATCH (t:Transmission{ identifier: '12345678' })-[r:EPISODE_OF]-(n:Series{
title: 'Buffy the Vampire Slayer' })
SET
r.quality = CASE WHEN r.quality IS NULL THEN 0.3
ELSE CASE WHEN r.quality + 0.3 > 1 THEN 1
ELSE CASE WHEN r.quality + 0.3 < 0 THEN 0
ELSE r.quality = r.quality + 0.3 END
return t;
有什么想法吗?我收到一个我不明白的错误。
Neo.ClientError.Statement.SyntaxError: Invalid input 'r': expected
whitespace, comment, '.', node labels, '[', "=~", IN, STARTS, ENDS,
CONTAINS, IS, '^', '*', '/', '%', '+', '-', '=', '~', "<>", "!=", '<',
'>', "<=", ">=", AND, XOR, OR or END (line 7, column 1 (offset: 284))
"return t"
^
答案 0 :(得分:2)
无需重复CASE
多次。这应该可以解决问题:
MATCH (t:Transmission{ identifier: '12345678' })-[r:EPISODE_OF]-(n:Series{ title: 'Buffy the Vampire Slayer' })
SET r.quality = CASE WHEN r.quality IS NULL THEN 0.3
WHEN r.quality + 0.3 > 1 THEN 1
WHEN r.quality + 0.3 < 0 THEN 0
ELSE r.quality + 0.3 END
RETURN t