我有这个问题:
select id from mytable where contains(all_text,'('||?||' within name)*2,
('||?||' within description)',1)>0
where子句中的包含如何工作?
谢谢,
答案 0 :(得分:1)
如果第一个参数出现在名称部分,则其权重是描述部分中出现的第二个参数的两倍。
此“包含”运算符将设置分数变量。没有它,重量加倍对于“> 0”条件没有意义。然而,
SELECT id FROM mytable WHERE CONTAINS(all_text,'('||?||' WITHIN name)*2,
('||?||' WITHIN description)',1)>0 ORDER BY SCORE(1) DESC
完全有意义,并且会在名称部分找到搜索词的那些行首先命令id。
以下是一个有用的参考,以防万一:http://docs.oracle.com/cd/B19306_01/text.102/b14218/cqoper.htm