我使用contains()来搜索字符串。
我的产品表有3列(Product_id,Product_name,Price);
我想搜索40英寸液晶屏
我的表格包含40“LCD,40‘LCD,40 am等,我正在使用以下查询搜索40”LCD产品。
Select top 10 *
from Product
where contains(Product_name,'(FORMSOF (INFLECTIONAL, 40) AND FORMSOF (INFLECTIONAL, LCD))')上面的查询显示结果为零。但是我想要40英寸的液晶屏
如何在Contains()中传递特殊字符?
我在谷歌上搜索,但没有找到任何好的解决方案
请帮我解决这个问题。
提前感谢
发布于 2013-06-14 18:20:42
要正确使用全文搜索并且只返回40" LCD,请尝试执行以下操作:
SELECT TOP 10 * FROM Product
WHERE CONTAINS(Product_name, '40 AND LCD')
AND Product_name LIKE '%40"%'注意:根据MSDN,标点符号被忽略,因此上面的查询将包括40"和40'。
忽略
标点符号。因此,CONTAINS(testing,"computer failure")匹配一行的值,"Where is my computer?找不到它的代价很高。“有关断字符行为的更多信息,请参见Configure and Manage Word Breakers and Stemmers for Search.
在没有FTS的情况下,试试这个:
SELECT TOP 10 * FROM Product
WHERE Product_name LIKE '%40%LCD%'发布于 2013-06-14 18:26:58
它将搜索包含双报价或单报价的任何行。
假设你有这样的Table:
create table a(
f1 varchar(100))
insert into a values('40" Inch TV')
select * from a
where CHARINDEX('"',f1,1)>0
select * from a
where CHARINDEX('40"',f1,1)>0而且,这是针对单引号数据的
insert into a values('17'' inch monitor')
select * from a
where CHARINDEX('17''',f1,1)>0https://stackoverflow.com/questions/17106249
复制相似问题