SQL包含问题 [英] SQL Contains Question

查看:114
本文介绍了SQL包含问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

有人可以向我解释这一点吗?我有两个查询,其结果如下。




查询

  select * from tbl where contains([name],'* he *AND* ca *')

结果集
$ b


Hertz租车

Hemingyway的小酒馆







查询

  select * from tbl where contains([姓名],'*他*AND* ar *')

结果 第一个查询是我期望的,但是我希望第二个查询返回Hertz Car Rental。我从根本上误解了'*'是如何在全文搜索中起作用的?

谢谢!

解决方案

我认为SQL Server正在将您的字符串解释为prefix_terms。星号不是普通的旧通配符说明符。全文和包含是面向字的。对于你正在尝试做的事情,你最好使用普通的旧LIKE而不是CONTAINS。



http://msdn.microsoft.com/en-us/library/ms187787.aspx


Can someone explain this to me? I have two queries below with their results.


query:

select * from tbl where contains([name], '"*he*" AND "*ca*"')

result-set:

Hertz Car Rental

Hemingyway's Cantina


query:

select * from tbl where contains([name], '"*he*" AND "*ar*"')

result-set:

nothing


The first query is what I would expect, however I would expect the second query to return "Hertz Car Rental". Am I fundamentally misunderstanding how '*' works in full-text searching?

Thanks!

解决方案

I think SQL Server is interpreting your strings as prefix_terms. The asterisk is not a plain old wildcard specifier. Fulltext and Contains are word oriented. For what you are trying to do, you would be better off using plain old LIKE instead of CONTAINS.

http://msdn.microsoft.com/en-us/library/ms187787.aspx

这篇关于SQL包含问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆