首页 > 解决方案 > 检查List1是否包含list2中的所有项目在neo4j中具有相同的list1顺序?

问题描述

例如我有下面的数组

Array1 = ["d","c","b"]
Array2= ["d","c","x"]
Array3= ["a","C"]
Array4= ["a","d","c","b","x"]

我想将 Array1、2、3 与 Array4 进行比较,结果应该是 Array1,因为其中包含 d、c、b,并且在 Array4 中排列正确。

标签: neo4jcypher

解决方案


最简单的方法是将数组转换为字符串,然后执行CONTAINSwhere 子句:

这是一个例子:

WITH ["d","c","b"] AS test, ["a","d","c","b","x"] AS array
WITH test, reduce(v='|', x in test | v + x + '|') as testAsString, reduce(v='|', x in array | v + x + '|') as arrayAsString
 WHERE arrayAsString CONTAINS testAsString
 RETURN test

请注意,如果在您的数组值中有一个|此代码可能会给您一些误报。


推荐阅读