Neubla3 Upsert语句加工

Nebula3.4.1

upsert edge on friend "14"->"15"@31 set `descr`=SPLIT(descr,",")+",1"

以上语句加提示 Storage Error: Invalid data, may be wrong value type.
需求:想更新字段时对descr加工一下,split取第0个。该怎么做啊,是否upsert语句不支持split函数

出现该错误的原因是split后返回的是list,与descr的数据类型不一致。

如果需求是「split取第0个」,可以这样写:

upsert edge on friend "14"->"15"@31 set `descr`=SPLIT(descr,",")[0]
1 个赞

你好,这样加上[0] 提示其它的错误

 upsert edge on friend "14"->"15"@31 set `descr`=SPLIT(descr,",")[0]
[ERROR (-1009)]: SemanticError: Has wrong expr in `SPLIT(descr,",")[0]'

我有做过测试,该语法是可行的。

你可以用match语句,return一下SPLIT(descr,",")[0],看看返回的结果是怎样的。

应该是版本差异,请问你用哪个版本? 我这边试了3.4.1不行

确实是版本差异,试试这个:upsert vertex on player "Yao Ming" set name=head(split(name," "))

多谢兄弟,head(split())可以,说来也奇怪,在match中使用split()[0]又是可以的。

此话题已在最后回复的 7 天后被自动关闭。不再允许新回复。