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

SQL::如何查找搜索字符串中最常见的记录(标记字段),sql,sql-server,sql-server-2008,tsql,Sql,Sql Server,Sql Server 2008,Tsql,我们有tbl_文章: id title tags ================================= 1 article1 science; 2 article2 art; 3 article3 sports;art; 我正在寻找一个查询,以返回来自tbl_文章的记录,这些文章包含最常用的单词,并带有特定的标记字符串(例如:政治;艺术;): 例:选择标签在“政治;艺术;中有共同点的地方(tbl_文章中的内容) 结果:

我们有tbl_文章:

id    title       tags
=================================
1     article1    science;
2     article2    art;
3     article3    sports;art;
我正在寻找一个查询,以返回来自tbl_文章的记录,这些文章包含最常用的单词,并带有特定的标记字符串(例如:政治;艺术;):

例:选择标签在“政治;艺术;中有共同点的地方(tbl_文章中的内容)

结果:

tbl_文章

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

你在找这个吗

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

请注意,我在开头和结尾使用分隔符,这样您就可以将“art”和“smart”作为标记。

您在找这个吗

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

请注意,我在开头和结尾使用了分隔符,因此您可以将“art”和“smart”作为标记。

您可以使用类似谓词的
来完成此任务,但请注意,它仅适用于
字符模式

我想你在找
自由文本
不仅返回准确的措辞,还返回附加到它的最接近的含义

有关以下类型的详细信息,

  • 自由文本

  • FREETEXTTABLE

  • 包含

  • 集装箱


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

    您可以使用类似谓词的
    来完成此任务,但请注意,它仅适用于
    字符模式

    我想你在找
    自由文本
    不仅返回准确的措辞,还返回附加到它的最接近的含义

    有关以下类型的详细信息,

  • 自由文本

  • FREETEXTTABLE

  • 包含

  • 集装箱


  • 在查询大量非结构化文本数据时,可以最好地实现使用
    全文搜索的性能优势。类似于
    查询(例如,“%microsoft%”)针对数百万行文本数据的查询可能需要几分钟才能返回;而
    全文
    查询(针对“microsoft”)只需几秒钟或更短的时间即可查询相同的数据,具体取决于返回的行数LIKE
    执行CLR和所有其他方法的情况。@AaronBertrand这很有趣。谢谢你的指点。+1我实际上在这里介绍了这种方法-这是一种内联
    LIKE
    执行CLR和所有其他方法的情况。@AaronBertrand这很有趣。谢谢你的指点。