【问题标题】:SQL Select and sort on relevance [closed]SQL选择并按相关性排序[关闭]
【发布时间】:2014-02-22 23:34:36
【问题描述】:

我想搜索一个表格列。并选择所有包含字符串的行。

我就是这样做的:

select * from memos where contains (article, '"test*"')

下一个问题是根据相关性对文章进行排序。因此,如果一条记录包含单词部分“test”的 4 倍,我希望它在顶部,如果它包含 3 倍的单词“test”,我希望它低于 4。因此按单词连续出现的次数对其进行排序.

【问题讨论】:

  • 请添加标签,表明您正在使用的数据库系统
  • 老爹?你来错地方了。如果您要求我们提供代码,您尝试过什么来解决您的问题?

标签: sql select contains sql-like


【解决方案1】:

假设文章存储为varchar()nvarchar(),那么你可以这样做

select *
from memos
where contains (article, '"test*"')
order by len(replace(article, 'test', 'test1')) - len(article) desc;

这会将test 替换为一个长一个字符的字符串,测量长度,然后减去原始长度。瞧。 test 出现的次数。这应该只发生在有搜索词的文章上。

我不确定 SQL Server 是否在全文引擎中内置了类似的功能。

【讨论】:

  • +1 计算测试次数的正确方法。虽然我想你希望订单降序
  • @t-clausen.dk 。 . .谢谢。
猜你喜欢
  • 2013-10-30
  • 1970-01-01
  • 1970-01-01
  • 2017-06-20
  • 1970-01-01
  • 1970-01-01
  • 2012-06-09
  • 2010-09-25
  • 2016-06-12
相关资源
最近更新 更多