LDAP - 查询电话号码,不包括空格字符

时间:2016-02-04 16:44:49

标签: search replace ldap

假设我有一个像这样的SQL Server表..

Somedata

..并且想要搜索包含" 345"的电话号码,忽略任何空格。

在SQL Server中,这很容易做到:

enter image description here

我的问题是,我想在LDAP查询中执行此操作,并且LDAP查询无法识别REPLACE函数。

Active Directory中的电话号码通常包含空格(或其他字符),但我无法编写如何编写LDAP查询来模拟SQL REPLACE()函数。

所以,现在,我的查询可以搜索,例如" 345"在所有电话号码中,但这三个字符必须出现在AD中,它们之间没有任何空格。

Select sn,givenName,mobile,telephoneNumber 
From 'LDAP://OurServerName/DC=global,DC=OurCompany,DC=net' 
Where (mobile='*345*' OR telephoneNumber ='*345*' )

有谁知道如何让LDAP搜索,忽略空格?

我发现similar questions建议LDAP只是开箱即用......但是从我所见过的情况来看,它并没有...

(是的,我们希望避免针对Active Directory运行脚本以删除所有电话号码中的所有空格。)

不过,我们公司的员工人数不足1500人,所以查询的表现不应成为问题。

1 个答案:

答案 0 :(得分:0)

嗯,就是这样。

TelephoneNumber和Mobile使用电话号码语法(1.3.6.1.4.1.1466.115.121.1.50),LDAP实现应该遵循RFC 4517并使用telephoneNumberMatch和telephoneNumberSubstringsMatch BOTH实现“无关紧要的字符处理”。 (即忽略空格,“ - ”等)按照e.123

据我所知,您需要运行脚本或ldif并解析数字以获得所需的结果。