在mysql中查找匹配的关键字我使用
SELECT * FROM `test` WHERE `keywords` REGEXP '.*(word1|word2|word3).*' LIMIT 1
我想通过关键字列中匹配最多的关键字对它们进行排序,以提供最佳答案。例如
关键词///////////////回复
word1,word2 /////////// test1
word1,word2,word3 / test2
我希望在给出查询时,响应为test2 如何为最匹配的关键字订购结果?
答案 0 :(得分: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