我有一个搜索查询,它能够根据查询中实际显示的单词数量按相关性对结果进行排序。
SELECT id,
thesis
FROM activity p
WHERE p.discriminator = 'opinion'
AND ( thesis LIKE '%gun%'
OR thesis LIKE '%crucial%' )
ORDER BY ( ( CASE
WHEN thesis LIKE '%gun%' THEN 1
ELSE 0
end )
+ ( CASE
WHEN thesis LIKE '%crucial%' THEN 1
ELSE 0
end ) )
DESC
但是,此查询不会根据“枪”或“关键”出现的次数进行排序。我想让它出现更多“枪”的记录出现在出现次数较少的记录之上。(即,每次枪出现时加一分,而不是因为枪至少出现一次而加分)