首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在高级MySQL查询中增加相关性值?

如何在高级MySQL查询中增加相关性值?
EN

Stack Overflow用户
提问于 2009-11-24 23:49:00
回答 1查看 438关注 0票数 0

我有一个类似于以下内容的MySQL查询:

代码语言:javascript
复制
SELECT *, MATCH (`Description`) AGAINST ('+ipod +touch ' IN BOOLEAN MODE) * 8 + MATCH(`Description`) AGAINST ('ipod touch' IN BOOLEAN MODE) AS Relevance
FROM products WHERE ( MATCH (`Description`) AGAINST ('+ipod +touch' IN BOOLEAN MODE) OR MATCH(`LongDescription`) AGAINST ('+ipod +touch' IN BOOLEAN MODE) )
HAVING Relevance > 1
ORDER BY Relevance DESC

现在,我还通过搜索UPC使查询更高级:

代码语言:javascript
复制
SELECT *, MATCH (`Description`) AGAINST ('+ipod +touch ' IN BOOLEAN MODE) * 8 + MATCH(`Description`) AGAINST ('ipod touch' IN BOOLEAN MODE) + `UPC` = '123456789012' * 16 AS Relevance
FROM products WHERE ( MATCH (`Description`) AGAINST ('+ipod +touch' IN BOOLEAN MODE) OR MATCH(`LongDescription`) AGAINST ('+ipod +touch' IN BOOLEAN MODE) ) AND `UPC` = '123456789012'
HAVING Relevance > 1
ORDER BY Relevance DESC

这将返回结果,但我在UPC上成功匹配的事实并不会增加Relevance的值。我能否只进行类似于MATCH()针对()的计算w/全文搜索?

好的,我真正的问题是,为什么下面的内容没有关联的Clarification: 16呢?

代码语言:javascript
复制
SELECT `UPC`, `UPC` = '123456789012' * 16 AS Relevance FROM products WHERE `UPC` = '123456789012' HAVING Relevance > 1 ORDER BY Relevance DESC
EN

回答 1

Stack Overflow用户

发布于 2010-05-08 14:52:42

首先,我认为在SELECT中再次使用UPC = '123455778'是多余的。在不正确的情况下,您不会得到任何行,那么为什么不直接使用"1“呢?

话虽如此,我认为你的问题是行动的顺序。随函附上括号中的比较对我有用:

代码语言:javascript
复制
SELECT 
    `UPC`,
    (`UPC` = '12346790') * 16 AS Relevance
FROM 
    `products`
WHERE
    `UPC` = '12346790'
HAVING
    Relevance > 1
ORDER BY 
    Relevance DESC
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1793776

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档