编辑:我的问题尚不清楚,所以我在这里重新制定了它: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/