表1:
ID 症名列表
32947 ,便血,热毒,
35803 ,脐腹冷痛,痿弱,不闻香臭,血热,冷泪,阴汗,
38948 ,血热,目睛疼痛,
44022 ,血热,热毒,痰实,胸膈不利,头目眩晕,肠风,疮疡,口舌干燥,咽喉肿痛,
44042 ,热毒,血热,头目不利,
44072 ,血热,小便不通,
44098 ,诸热,血热,目赤,
52812 ,吐血,衄血,血热,
52856 ,鼻衄,血热,
52945 ,血热,鼻衄不止,
53014 ,衄血,汗血,热结,
53015 ,衄血,汗血,热盛,
要查找表里有'血热' 症状的记录
select * from xt_td_ColumnToRow_pjf_zmym
where contains(症名列表,'血热');
结果把下面这些记录也查出来了
32947 ,便血,热毒,
46042 ,伤寒八日,热病,下痢脓血,热毒,
53014 ,衄血,汗血,热结,
53015 ,衄血,汗血,热盛,
问题:
1.怎么才能把这些条去掉呢?
2. 要查表里症名列表里同时含“血热”“目赤”的记录怎么写?
select * from xt_td_ColumnToRow_pjf_zmym
where contains(症名列表,'"血热" and "有血"');
实际这表1里没有这样的数据
但是却把所有含“血热”的给列出来了
------解决方案--------------------
- SQL code
select * from xt_td_ColumnToRow_pjf_zmym with(nolock) where [症名列表] like '%血热%' or [症名列表] like '%目赤%'contains 是全文索引的查询方法
------解决方案--------------------
我只说一句话:查看联机丛书
哈哈
------解决方案--------------------
- SQL code
--可以试一下这种select * from xt_td_ColumnToRow_pjf_zmym where contains(症名列表,'血热 NEAR 有血' ); --这种只能查询出保护 这俩个词,并且是相邻的情况下
------解决方案--------------------
1、 搜索特定词:contains(detail,'姚明')
2、 搜索特定短语:用““将短语包含在双引号内,contains(detail,'姚明 上海')
3、 从多个列中搜索词和短语:contains((title,detail),'姚明 上海')
4、搜索以指定文本开头的词或短语:contains(detail,'“姚明*“')
如果文本和星号不包含在双引号内,则全文搜索会将星号看做是一个字符。如果搜索的是短语,则该短语内的每个词都被看做是一个前缀。contains(detail,'“姚明 上海*“')则将返回第一个词以姚明开头第二个词以上海开头的结果
5、 搜索特定词的变形:contains(detail,'formsof(inflectional,ride)')
将返回表中含有ride,rides,riding,ridden的行
6、搜索与另一个词或短语临近的词或者短语:contains(detail,'姚明 near 上海')
7、使用加权值的词或短语:contains(description,’isabout(performance weight(.8),comfortable weight(.4),smooth weight(.2))’)
Weight为每个词或短语指定一个0.0~1.0之间的加权值
8、使用多个搜索条件: contains(detail,'”姚明” or “上海”')
contains(detail,'”姚明” and “上海”')
contains(detail,'”姚明” and not “上海”')
9、在contains中还可以使用变量