2010-08-26 91 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未启用,这也可以工作。

谢谢大家。希望这有助于某人。