首页 > 代码库 > FREETEXT FREETEXTTABLE CONTAINS CONTAINSTABLE

FREETEXT FREETEXTTABLE CONTAINS CONTAINSTABLE

数据库数据执行任意文本查询:

 

1.使用FREETEXT谓词 FREETEXT接受两个参数。

第一个参数表示要搜索的列,可以提供列名,或者用*字符搜索表中的所有列。

第二个参数表示要搜索的短语。

例: select Title from Titles where FREETEXT(Title,‘secret computer‘)

该SQL语句将数据库表Titles中的Title列中的内容包括secret或computer的纪录查询出来 。

 

2.使用FREETEXTTABLE函数 FREETEXTTABLE接受三个参数。

第一个参数表示要搜索的表,

第二个参数表示要搜寻的列,

第三个参数表示要搜索的短语。它返回一个表,表中包含KEY和Rank两列,key表示与此匹 配相关联的纪录的惟一键。rank表示结果与查询的匹配程度,1000表示最佳,0表示最差。

例:select * from Freetexttable(Titles,Title,‘a book about silicon valley‘) searchTable

此SQL语句返回表searchTable,表中有两列,key和rank。

 

数据库数据的布尔查询:

 

1.使用CONTAINS谓词

CONTAINS接受两个参数:要搜索的列和搜索短语。

例:select Title from Titles where contains(Title,‘computer and not cooking‘)

此例返回title里包含computer的纪录不返回包含cooking的纪录,因为 and not。

如果短语中有词组

如:select student_id,student_name from students where CONTAINS( address, ‘"HEIBEI province"‘ );也可以用CONTAINS( address, ‘"HEIBEI province"‘ )

如果查询以‘hu’开头的地址:

SELECT student_id,student_name FROM students WHERE CONTAINS( address, ‘"hu*"‘ )

这里是‘*’,而不是‘%’。

 

2.使用CONTAINSTABLE谓词 CONTAINSTABLE接受三个参数:

要搜索的表,要搜索的列和搜索的短语.

例:select * from containstable ( Titles,Title,‘Cooking AND NOT Computer‘)

该例返回包含key和rank两列的表

FREETEXT FREETEXTTABLE CONTAINS CONTAINSTABLE