我们可以使密码字段查询不区分大小写吗
Can we make cypher field query Case-Insensitive
它似乎与 this 重复,但事实并非如此。我们可以根据字段使密码查询不区分大小写吗?我知道我们可以对值使用正则表达式,但我们需要它基于字段。
例如
MATCH (c:customer) WHERE c.CUSTOMERNUMBER = '1088' RETURN c
上面查询returns一个结果,下面没有
MATCH (c:Customer) WHERE c.CustomerNumber = '1088' RETURN c
此处标签客户和 属性 CustomerNumber 的情况不同。
您可以使用 PROPERTIES 获取节点的地图表示,然后使用 KEYS 以便迭代它们。因为 "Name"、"NAME"、"Prop1" 都是同样唯一的 属性 名称,就 DB 而言,它们可以全部或 none 存在。您将必须遍历节点的每个 属性 以找到符合您的条件的字段。
MATCH (n)
WHERE ANY(key in KEYS(n) WHERE lower(key)="name" AND n[key]="Neo")
RETURN n
这比简单的不区分大小写更灵活,但也很昂贵。
它似乎与 this 重复,但事实并非如此。我们可以根据字段使密码查询不区分大小写吗?我知道我们可以对值使用正则表达式,但我们需要它基于字段。
例如
MATCH (c:customer) WHERE c.CUSTOMERNUMBER = '1088' RETURN c
上面查询returns一个结果,下面没有
MATCH (c:Customer) WHERE c.CustomerNumber = '1088' RETURN c
此处标签客户和 属性 CustomerNumber 的情况不同。
您可以使用 PROPERTIES 获取节点的地图表示,然后使用 KEYS 以便迭代它们。因为 "Name"、"NAME"、"Prop1" 都是同样唯一的 属性 名称,就 DB 而言,它们可以全部或 none 存在。您将必须遍历节点的每个 属性 以找到符合您的条件的字段。
MATCH (n)
WHERE ANY(key in KEYS(n) WHERE lower(key)="name" AND n[key]="Neo")
RETURN n
这比简单的不区分大小写更灵活,但也很昂贵。