在mysql中查找匹配的关键字
SELECT * FROM `test` WHERE `keywords` REGEXP '.*(word1|word2|word3).*' LIMIT 1
我想按关键字列中最匹配的关键字排序以给出最佳答案
关键字/////////////////Response
word1,word2/////////////test1
字1,字2,字3/测试2
我希望响应是test2,并给出查询。
我如何才能排序结果我最匹配的关键字?
最佳答案
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
关于php - mysql:按匹配顺序排序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8378356/