【发布时间】:2012-08-09 04:30:56
【问题描述】:
我有一个搜索查询,它能够根据查询中实际出现的单词数量按相关性对结果进行排序。
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
但是,此查询不会根据“枪”或“关键”出现的次数进行排序。我想让它出现更多“枪”的记录出现在出现次数较少的记录之上。 (即,每次枪出现时加一分,而不是因为枪至少出现一次而加分)
【问题讨论】: