2014-11-05 1 views
1

Как передать параметры для условия WHERE?Cypher: Передача нескольких параметров в WHERE IN

То есть, это работает отлично:

match (b:Book) where b.guid={guid} return b; 

Но, как передать несколько GUIDs в качестве параметров для этого запроса:

match (b:Book) where b.guid in [guid1,guid2,gid3] return b; 

Я использую neo4jphp клиент, мой код например:

$client = new Everyman\Neo4j\Client("neo4j server address", "7474"); 
$result = new Everyman\Neo4j\Cypher\Query($client, "match (b:Book) where b.guid={guid} return b", array('guid'=>$guid1)); 
$res = $result->getResultSet(); 

ответ

1

Вы должны передать ray как параметры, запрос будет выглядеть так:

match (b:Book) where b.guid in {myMap} return b; 


$client = new Everyman\Neo4j\Client("neo4j server address", "7474"); 
$result = new Everyman\Neo4j\Cypher\Query($client, "match (b:Book) where b.guid in {MyMap} return b", array('myMap'=> array($guid1, $guid2, $guid3))); 
$res = $result->getResultSet(); 
+0

Спасибо. Кажется, это не работает для меня. Я еще раз проверю. Я использую neo4j-community-2.1.5 –

+0

вы можете попробовать с этим в своем запросе. IN [{myMap}] –

+0

'IN {myList}' правильный. –