mysql:按匹配排序

时间:2011-12-04 20:27:22

标签: php mysql

在mysql中查找匹配的关键字我使用

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

我想通过关键字列中匹配最多的关键字对它们进行排序,以提供最佳答案。例如

  

关键词///////////////回复
  word1,word2 /////////// test1
  word1,word2,word3 / test2

我希望在给出查询时,响应为test2 如何为最匹配的关键字订购结果?

1 个答案:

答案 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