我正在搜索数据库中的关键字,如Obrien,结果应该也会用O'Brien返回所有记录。我已经尝试过全文搜索MySql。问题在于结果集只能记录1条记录,但全文特征要求结果集包含3条记录或50%的匹配结果。搜索带撇号的记录
有谁知道如何做到这一点?
我正在搜索数据库中的关键字,如Obrien,结果应该也会用O'Brien返回所有记录。我已经尝试过全文搜索MySql。问题在于结果集只能记录1条记录,但全文特征要求结果集包含3条记录或50%的匹配结果。搜索带撇号的记录
有谁知道如何做到这一点?
你能不能做这样的事情:
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, '''', '')
感谢您的快速响应。我试过这个解决方案,但是我要找的 是输入搜索字符串作为“Obrien”,并期望结果显示“Obrien”和“O'Brien”的记录。 – peace 2010-08-26 15:45:40
非常感谢你对你的回应。真心感谢您的帮助。我试过这个,它为我工作。我从这个网站本身得到了这个解决方案。
标题:撇号和SQL Server FT搜索
最后的解决方案是由 “阿利斯泰尔敲门”,这是
SELECT姓 FROM表 建议WHERE姓LIKE '%值%' 或更换(姓氏,'''','')LIKE'%value%'
即使FT未启用,这也可以工作。
谢谢大家。希望这有助于某人。
为什么不直接忽略其他结果呢?另外,你如何确定第一个结果是你正在寻找的? – 2010-08-26 14:35:05
对不起,如果我的问题不清楚。我的意思是,结果只能包含1个匹配项,并且这是mysql全文搜索不显示此单个匹配的地方 – peace 2010-08-26 15:50:10