2016-03-03 90 views
3

考虑这个示例:Sql LIKE in Arabic?

CREATE TABLE #tempTable 
(name nvarchar(MAX)) 

INSERT INTO #tempTable VALUES (N'إِبْرَاهِيمُ'), (N'إبراهيم') 

SELECT * FROM #tempTable WHERE name = N'إبراهيم' 
SELECT * FROM #tempTable WHERE name LIKE N'%إبراهيم%' 

两个仅选择返回إبراهيم但不إِبْرَاهِيمُ。我怎样才能让它在搜索时忽略这些非字母字符?换句话说,我想要得到所有类似的词,包括那些非alpha字符的词。

+0

重音字符不要使字符不同? 'م'的含义与'م'不一样? – Kramb

+0

尝试使用SOUNDEX,但我不确定SQL Server是否支持该功能的阿拉伯语。 – FLICKER

+0

不,它们仅用于指示他们所说的“声音”。例如'م'听起来'ma',而'م'听起来'我'。 –

回答

0

你不这样做。简单。这里没有关于阿拉伯语的问题 - 你在英语中遇到同样的问题。

如何让它忽略搜索中的这些非字母字符?

Like numbers?一点也不。不符合“标准SQL语法”。

如果可以,请在该字段中输入全文索引。并在查询中使用全文搜索语法。这就是它的目的。

+0

不,我被误解了。我的意思是“非字母字符”,例如'ض'和'ض'和'ض'。正如你看到的,使用相同的字母字符,带有一些尾标记指示如何发音字符,而不改变字符本身 –

0

不幸的是,没有区分大小写阿拉伯语,当然,这两个SELECT语句会返回إبراهيم“,因为他们被命令这样做。

这是我们长期苦恼的一个问题,当人们写作'أحمد'时,他们总是寻找'احمد',他们不会找到它。

+0

我认为你的问题是由Kramb回答的 –