2017-01-03 82 views
0

就像下面的query,它顯示score。我想用繩子或單詞這是比賽與如何在全文搜索中得到與列值匹配的字符串SQL

SELECT Opinion, MATCH(Opinion) AGAINST('nice language' IN BOOLEAN MODE) AS Score 
FROM opinions 
WHERE MATCH(Opinion) AGAINST ('nice language' IN BOOLEAN MODE); 

輸出相同:

+---------------------------------------+-------+ 
| Opinion        | Score | 
+---------------------------------------+-------+ 
| PHP is a very nice language   |  2 | 
| Spain is a nice country to visit  |  1 | 
| Perl is not as nice a language as PHP |  2 | 
+---------------------------------------+-------+ 

,但要低於輸出:

+---------------------------------------+--------------+ 
| Opinion        | String  | 
+---------------------------------------+--------------+ 
| PHP is a very nice language   | nice language| 
| Spain is a nice country to visit  | nice   | 
| Perl is not as nice a language as PHP | nice language| 
+---------------------------------------+-------+------+ 
+0

sql server標籤? –

+0

編輯完成請檢查。 –

+0

任何建議傢伙? –

回答

0

如果你正在尋找一個看起來像一個結果

enter image description here

然後利用下面的查詢希望這會幫助你的

select Opinion, 
     case 
     when Opinion like '%nice language%' or (Opinion like '% nice %' and Opinion like '% language %') then 'nice language' 
     when Opinion like '% nice %' then 'nice' 
     when Opinion like '% language %' then 'language' 
     end string 
from table1 
where 
    Opinion like '%nice language%' 
     OR (Opinion like '% nice %' and Opinion like '% language %') 
     OR Opinion like '% nice %' 
     OR Opinion like '% language %' 

+0

1: - 全文搜索不可能嗎? –

+0

和搜索字符串是動態的嗎? –

+0

@DurgeshPandey如果它是動態的,那麼你必須拆分字符串並相應地替換查詢。 – Viki888

相關問題