我使用通配符获得了有关搜索的请求。
我创建了以下查询
SELECT * FROM [nt:base] AS p WHERE
ISDESCENDANTNODE(p, [/home/users/ldap/2]) AND
p.[sling:resourceType] = 'cq/security/components/profile' AND
Contains (p.memberOf, 'SUG-pilot-anna')
它按预期工作。此查询的任务是查找属于特定ldap组的用户。
因为搜索每个组都有很多工作,比如
SUG-pilot-anna
SUG-pilot-berta
SUG-pilot-ceta
,使用通配符会更容易,也更有效。根据几个文档,SQL2支持LIKE
运算符。
我的问题是:如何使用通配符查找查询?
感谢您的帮助/想法。
答案 0 :(得分:1)
您可以使用%
通配符查询您的要求。
SELECT * FROM [nt:base] AS p WHERE
ISDESCENDANTNODE(p, [/home/users/ldap/2]) AND
p.[sling:resourceType] = 'cq/security/components/profile' AND
p.memberOf LIKE 'SUG-pilot-%'
这将返回属于以SUG-pilot-
开头的任何组名的用户列表。
“%”匹配零个或多个字符,“ _ ”恰好匹配一个字符。
我的实例中使用的确切查询是
SELECT * FROM [nt:base] AS p WHERE
ISDESCENDANTNODE(p, [/home/users/]) AND
p.[sling:resourceType] = 'cq/security/components/profile' AND
p.memberOf LIKE '%de%'