【发布时间】:2012-06-05 04:13:07
【问题描述】:
如何在查询中显示 1 到 10 分。
例如我得到了 10 条记录,我想匹配最高的 10 条,依此类推。
SELECT DISTINCT c.id, c.title, cv.title2 , match ( c.title, c.title2, c.title3, c.title4 ) against ('Support' IN BOOLEAN MODE) AS score
FROM table1 AS c
WHERE match ( c.title, c.title2, c.title3, c.title4 ) against ('Support' IN BOOLEAN MODE)
当我进行搜索时,我的数据库会返回一组结果。
如果关键字匹配 c.title、c.title2、c.title3、c.title4 中的 50 个关键字(这只是一个示例),那么我想将 10 分中的 10 分显示为分数,并说这是完美匹配。
如果关键字匹配 c.title、c.title2、c.title3、c.title4 中的 45 个关键字(这只是一个示例),那么我想显示 9 分(满分 10 分)作为分数。
如果关键字匹配 c.title、c.title2、c.title3、c.title4 中的 30 个关键字(这只是一个示例),那么我想显示 7 分(满分 10 分)作为分数,有些完美。
如果关键字与 c.title、c.title2、c.title3、c.title4 中的 2 个关键字匹配(这只是一个示例),那么我想将 10 分中的 1 分显示为某些关键字匹配的分数。
等等。
【问题讨论】:
-
你不能在输出循环中添加 1 到 10 吗?
-
我需要显示关键字匹配的分数
-
你真的需要弄清楚你想做什么,因为这一定是我见过的最模糊的问题之一。例如。给出一个具有所需输出的示例数据集。这个分数应该是什么意思?只是出现的顺序?你总是得到正好 10 条记录吗?解释一下。