SQL ::如何查找搜索字符串中最常见的记录(标签字段)

时间:2012-07-26 15:38:15

标签: sql sql-server sql-server-2008 tsql

我们有tbl_Articles:

id    title       tags
=================================
1     article1    science;
2     article2    art;
3     article3    sports;art;

我正在寻找一个查询来返回来自tbl_Articles的记录,其中最常见的单词带有特定的标签字符串(例如:政治;艺术; ):

EX:选择(某些来自tbl_articles)其中标签&#34; 政治;艺术; &#34; < / p>

结果:

tbl_Articles

id    title       tags
=================================
2     article2    art;
3     article3    sports;art;

2 个答案:

答案 0 :(得分:4)

你在找这个吗?

select a.*
from articles a
where ';'+tags+';' like '%;politics;%' and
      ';'+tags+';' like '%;art;%'

请注意,我在开头和结尾都使用了分隔符,因此您可以使用&#34; art&#34;和&#34;智能&#34;作为标签。

答案 1 :(得分:0)

您可以使用LIKE predicate 完成此任务,请注意,它仅适用于Character Patterns

我认为您正在寻找 Full-Text Query Free Text不仅会返回准确的措辞,还会返回与其相关的最接近的含义。

有关以下类型的详细信息 check ..

  1. FREETEXT

  2. FREETEXTTABLE

  3. 包含

  4. CONTAINSTABLE

  5. 在查询大量非结构化文本数据时,可以最好地实现使用Full-Text搜索的性能优势。针对数百万行文本数据的LIKE查询(例如,'%microsoft%')可能需要几分钟才能返回;而对于相同的数据,Full-Text查询(对于'microsoft')只需几秒或更短时间,具体取决于返回的行数。