web-dev-qa-db-fra.com

Clause LIKE dans la requête CYPHER

Il semble que LIKE n'est pas pris en charge dans les requêtes Cypher.

Y a-t-il une autre construction qui effectuerait la même tâche?

Par exemple:

start n = node(*) where n.Name LIKE('%SUBSTRING%') return n.Name, n;
50
johnc

en utilisant des expressions régulières: http://neo4j.com/docs/developer-manual/current/#query-where-regex

start n = node(*) where n.Name =~ '.*SUBSTRING.*' return n.Name, n;
60
ulkas

Depuis la version 2.0, la syntaxe préférée utilise MATCH.

par exemple.

MATCH (n) where n.Name =~ '.*SUBSTRING.*' return n.Name, n;
22
Ryan Walls

Aucune regexps nécessaire:

start n = node(*) where n.Name contains "substring" return n.Name, n;

Accédez à la carte de référence du chiffre et faites défiler jusqu'à la section Prédicats. Vous trouverez cela et d'autres trucs utiles.

Vous voulez insensible à la casse? Convertir en minuscules:

start n = node(*) where lower(n.Name) contains lower("substring") return n.Name, n;
16
user7586097

Si vous voulez le rendre insensible à la casse

MATCH (n) WHERE n.name =~ '(?i).*SUBSTRING.*' RETURN n;
14
arikan