如何在密码查询中使用 UNWIND 后的条件

巴斯马·阿舒尔

我有这个密码查询

WITH ["first", "second"] AS things, -1 AS index
UNWIND range(0,size(things)-1) AS i  
Return things[i]

现在我想检查things[i]它是否等于“第一”然后返回它的索引,在这种情况下是 0,其中“第一”的索引为 0。但我不知道如何在 UNWIND 之后写条件。

我尝试在返回后添加条件,如下所示:

WITH ["first", "second"] AS things, -1 AS index
UNWIND range(0,size(things)-1) AS i  
Return CASE WHEN things[i] = "first" THEN i AS index 

但它不起作用,任何帮助将不胜感激,谢谢。

拉金德拉·卡达姆

此列表中只有一个“第一”,但列表中可能出现多个“第一”。

我在这里分享 Cypher 以获取列表中任何字符串第一个索引(此处为“first”)

WITH ["first", "second"] AS things, -1 AS index
RETURN [x IN range(0,size(things)-1) WHERE things[x] = "second"][0] AS index

.

编辑如果在列表中没有找到字符串,则上述 Cypher 返回null如果您想要 -1 或任何其他值以防找不到字符串,请使用以下查询:

WITH ["first", "second"] AS things, -1 AS index
WITH [x IN range(0,size(things)-1) WHERE things[x] = "first"][0] AS index
RETURN  CASE WHEN index IS NOT NULL THEN index ELSE -1 END AS index

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章