2012-02-12 57 views
0

我有這個疑問:oracle如何包含查詢工作?

select id from mytable where contains(all_text,'('||?||' within name)*2, 
('||?||' within description)',1)>0 

如何將在where子句中包含的工作?

謝謝,

+0

參見[堆棧溢出如何包含()的PL-SQL的工作?](http://stackoverflow.com/questions/2431054/how-does -contains式-PL-SQL工作) – Appleman1234 2012-02-12 02:46:30

回答

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