编辑:我的问题尚不清楚,所以我在这里重新制定了它:Order sql result by occurrence of a set of keywords in a string

我正在改善网站的搜索系统。我正在尝试使用和增加sql请求中的变量,像这样...

SET @titlematch = 0;
SELECT *,
CASE
    when title like '%apple%' then (SET @titlematch = @titlematch+1)
    when title like '%orange%' then (SET @titlematch = @titlematch+1)
    when title like '%other_keyword_searched%' then (SET @titlematch = @titlematch+1)
    (...)
END,
(...)
FROM pages
(...)
ORDER by @titlematch desc


实际上,每次关键字在标题中时,titlematch应该增加。如果标题中有“ apple”和“ orange”,则titlematch应该等于2。
但是实际上,它不起作用...

(对不起我的英语不好)

最佳答案

我认为它失败是因为它必须处理所有数据,如果诸如someWordYouDontAcccount之类的标题将失败,则必须考虑所有可能的情况或使用其他方法。

关于mysql - SQL:每行的用户变量增量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18570263/

10-12 07:21