编辑:我的问题不清楚,所以我在这里重新表述了它: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。 但实际上,它不起作用......
(对不起我的英语)
最佳答案
我认为它失败是因为它必须处理所有数据,如果标题像 someWordYouDontAcccountFor 它将失败。您必须考虑所有可能的情况或使用其他。
关于mysql - SQL:每行的用户变量增量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18570263/