密码-对结果集的多个查询

时间:2018-08-20 04:43:28

标签: neo4j cypher

我编写了一个密码查询,该查询返回一组结果(resultList)。然后,我想查询resultList以使用WHERE根据resultList中的值创建三个进一步的结果集。

我有以下密码:

$count = ew_Execute("SELECT COUNT(*) FROM ems_defects_codes WHERE DEF_CODE = '$def_code'");
$alphabet = range('A', 'Z');
$start_letter = 0;
$rowno = 1;
for ($i = 0; $i < $count; $i++) {
    $objPHPExcel->getActiveSheet()->mergeCells($alphabet[$start_letter] . $rowno . ':' . ($alphabet[$start_letter] + $alphabet[$i]) . $rowno);
}

请问该如何处理?

非常感谢!

2 个答案:

答案 0 :(得分:1)

我使用了大小写,并在我的数据集上进行了尝试:

MATCH (g:Group)
WITH COLLECT(g) AS my_set
UNWIND my_set AS g
WITH g
RETURN COLLECT(CASE WHEN g.status='APPROVED' THEN g END) AS APPROVED_GROUP, COLLECT(CASE WHEN g.status='PENDING' THEN g END) AS PENDING_GROUP

这将返回2个单独的集合,请尝试此解决方案,希望对您有帮助

答案 1 :(得分:1)

您可以过滤并提取列表本身,而无需取消缠绕:

...
WITH 
COLLECT({
    q: q,
    lastAttempt: attempt
}) as fullOrderedList

WITH fullOrderedList, 
 [entry in fullOrderedList WHERE <condition 1 here>] as firstList, 
 [entry in fullOrderedList WHERE <condition 2 here>] as secondList, 
 [entry in fullOrderedList WHERE <condition 3 here>] as thirdList
... 

这称为list comprehension。如果您需要自定义地图内容的投影,则可以使用链接中提供的语法根据需要进行投影。