Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将LIKE转换为SQL Server中的CONTAINS?_Sql_Sql Server_Sql Like - Fatal编程技术网

如何将LIKE转换为SQL Server中的CONTAINS?

如何将LIKE转换为SQL Server中的CONTAINS?,sql,sql-server,sql-like,Sql,Sql Server,Sql Like,这是一个使用“LIKE”的查询: SELECT JoinedColumnInfo FROM [dbo].[ImportedData] WHERE CategoryId = 11131700 AND JoinedColumnInfo LIKE '%usb%' 1.F5TYEU 2815124 KOSS cs100usb Double Sided Comm Headset USB, Noise Cancelling Microphone Wired 2.PODCASTUDIOUS

这是一个使用“LIKE”的查询:

  SELECT JoinedColumnInfo FROM [dbo].[ImportedData]
  WHERE CategoryId = 11131700
  AND  JoinedColumnInfo LIKE  '%usb%'
1.F5TYEU 2815124 KOSS cs100usb Double Sided Comm Headset USB, Noise Cancelling Microphone Wired

2.PODCASTUDIOUSB BEHRINGER Studio PodCast Kit - Includes Microphone, Mixer and Headphones

3.NUYVSRB 79X3419cs100usb KOSS Double Sided Comm Headset USB, Noise Cancelling Microphone
   SELECT JoinedColumnInfo FROM [dbo].[ImportedData]
   WHERE CategoryId = 11131700
   AND  CONTAINS  (JoinedColumnInfo,   '"usb*"')
类似结果表为:

  SELECT JoinedColumnInfo FROM [dbo].[ImportedData]
  WHERE CategoryId = 11131700
  AND  JoinedColumnInfo LIKE  '%usb%'
1.F5TYEU 2815124 KOSS cs100usb Double Sided Comm Headset USB, Noise Cancelling Microphone Wired

2.PODCASTUDIOUSB BEHRINGER Studio PodCast Kit - Includes Microphone, Mixer and Headphones

3.NUYVSRB 79X3419cs100usb KOSS Double Sided Comm Headset USB, Noise Cancelling Microphone
   SELECT JoinedColumnInfo FROM [dbo].[ImportedData]
   WHERE CategoryId = 11131700
   AND  CONTAINS  (JoinedColumnInfo,   '"usb*"')
这与使用“CONTAINS”的查询相同:

  SELECT JoinedColumnInfo FROM [dbo].[ImportedData]
  WHERE CategoryId = 11131700
  AND  JoinedColumnInfo LIKE  '%usb%'
1.F5TYEU 2815124 KOSS cs100usb Double Sided Comm Headset USB, Noise Cancelling Microphone Wired

2.PODCASTUDIOUSB BEHRINGER Studio PodCast Kit - Includes Microphone, Mixer and Headphones

3.NUYVSRB 79X3419cs100usb KOSS Double Sided Comm Headset USB, Noise Cancelling Microphone
   SELECT JoinedColumnInfo FROM [dbo].[ImportedData]
   WHERE CategoryId = 11131700
   AND  CONTAINS  (JoinedColumnInfo,   '"usb*"')
包含的结果表是:(2个结果)

在CONTAINS查询中我没有得到第2条记录为什么?
如何将“LIKE”转换为“CONTIANS”并获得相同的结果?

LIKE和CONTAINS的工作方式有一些根本性的区别,最重要的是,在使用CONTAINS时,列上需要现有的全文索引

发件人:

包含可以搜索的内容:

  • 一个词或短语
  • 单词或短语的前缀
  • 一个词接近另一个词
  • 从另一个单词(例如,单词drive是drives、driven、driving和driven的词干的词形变化)
  • 使用同义词库的另一个单词的同义词(例如,单词“metal”可以有同义词,如“aluminal”和“aluminal”) “钢”)

另一方面,LIKE使用模式匹配来查找简单的字符串匹配来查找您要查找的值。

您能提供一个示例表和输出吗?Hi@Tejas我添加了一个示例outputHi@Michael Tobisch,换句话说,我不能使用CONTAINS来搜索更大字符串中的子字符串?我只能搜索一个单词?它列出了您可以搜索的内容。请按照上面的链接阅读有关全文索引的文档。也许也有帮助。