2016-03-03 115 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回答的 –