加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

sql 中contains的使用例子,参数详解

(2014-01-07 10:58:39)
标签:

三个

开头

系数

参数

双引号

it

分类: sqlserver&mysql

全文索引——CONTAINS 语法 
我们通常在 WHERE 子句中使用 CONTAINS ,就象这样:SELECT * FROM table_name WHERE CONTAINS(fullText_column,'search contents')。我们通过例子来学习,假设有表 students,其中的 address 是全文本检索的列。 
1. 查询住址在北京的学生 
SELECT student_id,student_name 
FROM students 
WHERE CONTAINS( address, 'beijing' ) 
remark: beijing是一个单词,要用单引号括起来。2. 查询住址在河北省的学生 
SELECT student_id,student_name 
FROM students 
WHERE CONTAINS( address, '"HEIBEI province"' ) 
remark: HEBEI province是一个词组,在单引号里还要用双引号括起来。3. 查询住址在河北省或北京的学生 
SELECT student_id,student_name 
FROM students 
WHERE CONTAINS( address, '"HEIBEI province" OR beijing' ) 
remark: 可以指定逻辑操作符(包括 AND ,AND NOT,OR )。4. 查询有 '南京路' 字样的地址 
SELECT student_id,student_name 
FROM students 
WHERE CONTAINS( address, 'nanjing NEAR road' ) 
remark: 上面的查询将返回包含 'nanjing road','nanjing east road','nanjing west road' 等字样的地址。 
A NEAR B,就表示条件: A 靠近 B。5. 查询以 '湖' 开头的地址 
SELECT student_id,student_name 
FROM students 
WHERE CONTAINS( address, '"hu*"' ) 
remark: 上面的查询将返回包含 'hubei','hunan' 等字样的地址。 
记住是 *,不是 %。6. 类似加权的查询 
SELECT student_id,student_name 
FROM students 
WHERE CONTAINS( address, 'ISABOUT (city weight (.8), county wright (.4))' ) 
remark: ISABOUT 是这种查询的关键字,weight 指定了一个介于 0~1之间的数,类似系数(我的理解)。表示不同条件有不同的侧重。7. 单词的多态查询 
SELECT student_id,student_name 
FROM students 
WHERE CONTAINS( address, 'FORMSOF (INFLECTIONAL,street)' ) 
remark: 查询将返回包含 'street','streets'等字样的地址。 
对于动词将返回它的不同的时态,如:dry,将返回 dry,dried,drying 等等。以上例子都使用英文,不使用中文是因为有的查询方式中文不支持,而且我的计算机是英文系统。 
全文索引——CONTAINS 语法 
我们通常在 WHERE 子句中使用 CONTAINS ,就象这样:SELECT * FROM table_name WHERE CONTAINS(fullText_column,'search contents')。
如果你在选定字段中查询一个匹配的直接使用
如:
从company中检查是否有test1的则:
select * from company 
where contains(*,'test1')
如果要检查的是两个关键字,如是或地关系:
select * from company 
where contains(*,'"北京" or "tttt"') 
注意:关键字“北京”和“tttt”必须用"",包括起来,or代表两个关键字之间是"或"的关系
如果是与的关系:
select * from company 
where contains(*,'"北京" and "tttt"')
如果是三个关键字则:
关键字前的那个or或者and 表示跟其他关键字的关系
and 表示两个词是靠近的

摘自:http://hi.baidu.com/cvdehxmnbkbswze/item/9ba465423395d1e11381daa4

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有