0
Neo4j的匹配數組值我與此查詢與節點屬性
MATCH(u:User) WHERE ANY(name IN ['ACB','xYz'] WHERE u.first_name =~ "(?i).*name.*") RETURN u
,它正在考慮(?i).*name.*
爲靜態文本,而不是從name IN ['ACB','xYz']
動態值嘗試。
Neo4j的匹配數組值我與此查詢與節點屬性
MATCH(u:User) WHERE ANY(name IN ['ACB','xYz'] WHERE u.first_name =~ "(?i).*name.*") RETURN u
,它正在考慮(?i).*name.*
爲靜態文本,而不是從name IN ['ACB','xYz']
動態值嘗試。
您可以使用字符串連接組裝一個正則表達式。然而,這種情況需要一些toString
暗示:
MATCH(u:User) WHERE ANY(name IN ['ACB','xYz']
WHERE u.first_name =~ toString("(?i).*" +name +".*"))
RETURN u
是的,正則表達式是靜態文本。 但在你的例子中,我認爲你可以直接在正則表達式中添加「['ACB','xYz']」,這裏不是動態的,對吧? – logisima
@logisima它也是動態的。請求。現在只是爲了完成工作,我遍歷了整個數組,並添加了每個元素 ** ex的正則表達式。 search_param = search_param.map(函數(ele){0} {0} {0}返回'。*(?i)'+ ele +'。*' }); ** 但我不想遍歷數組。 –