从coldfusion中的查询结果集中查找特定值

时间:2013-11-04 19:57:16

标签: coldfusion

我得到的cfquery结果如下所示。这个结果集为一个字段值(单行)。

会员= “CN = AG-880-ExpenseReports,CN = Users,DC = alcco,DC = com,CN = HTTP Users,CN = Users,DC = alcco,DC = com,CN = WA Houses,CN = Users,DC = alcco ,DC = com,CN = MTViewMeadows,CN = Users,DC = alcco,DC = com,CN = ALC0169 ,CN = Users,DC = alcco,DC = com,CN = ALC0069 ,CN = Users,DC = alcco,DC = com“

必须作为ALC0169,ALC0069的编号列表,我也需要从该结果集中仅使用值0169,0069 ..

有没有办法用coldfusion做到这一点?

2 个答案:

答案 0 :(得分:2)

这是一个非常简单的字符串处理脚本,它将根据您的描述打印出您要查找的数字列表。在打印数字的地方,您需要将这些数字捕获到数组或其他结构中,具体取决于您要对数据执行的操作。

<cfscript>
memberOf = "CN=AG-880-ExpenseReports,CN=Users,DC=alcco,DC=com,CN=HTTP Users,CN=Users,DC=alcco,DC=com,CN=WA Houses,CN=Users,DC=alcco,DC=com,CN=MTViewMeadows,CN=Users,DC=alcco,DC=com,CN=ALC0169,CN=Users,DC=alcco,DC=com,CN=ALC0069,CN=Users,DC=alcco,DC=com";
memberOf = Replace(memberOf, "CN=Users,DC=alcco,DC=com", "", "all");
memberOf = Replace(memberOf, ",,", ",", "all");
memberOf = Replace(memberOf, "CN=", "", "all");
memberArray =  ListToArray(memberOf);
</cfscript>

<cfoutput>
    #memberOf#<br/><br/>
    <cfloop array="#memberArray#" index="i">
        <cfif Left(i, 3) eq "ALC">
            #Right(i, Len(i)-3)#<br/>
        </cfif>
    </cfloop>
</cfoutput>

答案 1 :(得分:1)

我会使用列表功能。请注意,您可以指定自己的分隔符。在您的其他帖子中,您的cfldap标记返回了一个名为GroupSearch的查询。

<cfset ALCNumbers = "">

 <cfloop list = "GroupSearch.MemberOf" Index = "MemberOfThis">

<cfif ListFirst(MemberOfThis, delimiters = "=") is "CN"
 and left(ListLast MemberOfThis, delimiters = "="), 3) is "ALC">

<cfset ALCNumbers = ListAppend(ALCNUmbers, mid(ListLast MemberOfThis, delimiters = "="), 4,
len(ListLast MemberOfThis, delimiters = "=") - 3)>

</cfif>

</cfloop>  

这可能有语法错误,因为我只是将其输入到textarea中。但是,它显示了一般的想法。