数据库数据执行任意文本查询:
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两列的表