2010-08-26 96 views
0

我正在搜索數據庫中的關鍵字,如Obrien,結果應該也會用O'Brien返回所有記錄。我已經嘗試過全文搜索MySql。問題在於結果集只能記錄1條記錄,但全文特徵要求結果集包含3條記錄或50%的匹配結果。搜索帶撇號的記錄

有誰知道如何做到這一點?

+0

爲什麼不直接忽略其他結果呢?另外,你如何確定第一個結果是你正在尋找的? – 2010-08-26 14:35:05

+0

對不起,如果我的問題不清楚。我的意思是,結果只能包含1個匹配項,並且這是mysql全文搜索不顯示此單個匹配的地方 – peace 2010-08-26 15:50:10

回答

0

你能不能做這樣的事情:

REPLACE(name,'''','') 

我測試了它:

DECLARE @name VARCHAR(10) 
SELECT @name = 'O''brien' 

SELECT @name as "pre", REPLACE(@name, '''', '') as "post" 

而且遊戲我柯布連爲前柱和奧布萊恩的後列。從OP響應後

編輯:
試試這個

SELECT TOP 1 * 
FROM table 
WHERE REPLACE(name, '''', '') = REPLACE(searchString, '''', '') 
+0

感謝您的快速響應。我試過這個解決方案,但是我要找的 是輸入搜索字符串作爲「Obrien」,並期望結果顯示「Obrien」和「O'Brien」的記錄。 – peace 2010-08-26 15:45:40

0

非常感謝你對你的迴應。真心感謝您的幫助。我試過這個,它爲我工作。我從這個網站本身得到了這個解決方案。

標題:撇號和SQL Server FT搜索

最後的解決方案是由 「阿利斯泰爾敲門」,這是

SELECT姓 FROM表 建議WHERE姓LIKE '%值%' 或更換(姓氏,'''','')LIKE'%value%'

即使FT未啓用,這也可以工作。

謝謝大家。希望這有助於某人。