为SQL Server结合“LIKE”和“IN”

在SQL Server-Query中可以结合使用LIKEIN吗?

那么,这个查询

 SELECT * FROM table WHERE column LIKE IN ('Text%', 'Link%', 'Hello%', '%World%') 

find这些可能的匹配中的任何一个:

 Text, Textasd, Text hello, Link2, Linkomg, HelloWorld, ThatWorldBusiness 

等等…

IN语句实际上创build了一系列OR语句…如此

 SELECT * FROM table WHERE column IN (1, 2, 3) 

是有效的

 SELECT * FROM table WHERE column = 1 OR column = 2 OR column = 3 

可悲的是,这是你必须采用LIKE语句的路线

 SELECT * FROM table WHERE column LIKE 'Text%' OR column LIKE 'Hello%' OR column LIKE 'That%' 

我知道这是旧的,但我去一种工作的解决scheme

 SELECT Tbla.* FROM Tbla INNER JOIN Tblb ON Tblb.col1 Like '%'+Tbla.Col2+'%' 

你可以进一步扩展它与你的where子句等我只回答因为这是寻找的东西,必须找出一个办法

另一种select是使用这样的东西

 SELECT * FROM table t INNER JOIN ( SELECT 'Text%' Col UNION SELECT 'Link%' UNION SELECT 'Hello%' UNION SELECT '%World%' ) List ON t.COLUMN LIKE List.Col 

您需要通过OR连接多个LIKE子句。

 SELECT * FROM table WHERE column LIKE 'Text%' OR column LIKE 'Link%' OR column LIKE 'Hello%' OR column LIKE '%World%' OR 

不,你将不得不用OR来结合你的LIKE语句:

 SELECT * FROM table WHERE column LIKE 'Text%' OR column LIKE 'Link%' OR column LIKE 'Hello%' OR column LIKE '%World%' 

你看过全文检索吗?

不,MSSQL不允许这样的查询。 你应该使用col LIKE '...' OR col LIKE '...'