2011-12-04 32 views
1

用於查找與關鍵字匹配在MySQL中我使用MySQL的:爲了通過比賽

SELECT * FROM `test` WHERE `keywords` REGEXP '.*(word1|word2|word3).*' LIMIT 1 

我想在關鍵字欄中最匹配的關鍵字,命令他們提供最好的answer.For例如

關鍵詞///////////////響應
WORD1,WORD2 /////////// TEST1
WORD1,word2和WORD3/TEST2

我希望響應是test2與給定的查詢。
我如何訂購結果我最匹配的關鍵字?

+4

你的財富'FULLTEXT'。 –

+0

列'關鍵字'是逗號分隔列表還是自由文本? –

+0

逗號分隔列表 – user1079160

回答

2
SELECT 
    (keywords REGEXP '.*(word1).*') 
    +(keywords REGEXP '.*(word2).*') 
    +(keywords REGEXP '.*(word3).*') as number_of_matches 
    ,keywords 
    ,field1 
    ,field2 
FROM test 
WHERE keywords REGEXP '.*(word1|word2|word3).*' 
ORDER BY number_of_matches DESC 
LIMIT 20 OFFSET 0