我有这个密码查询
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] 删除。
我来说两句