Combining "LIKE" and "IN" for SQL Server [duplicate]

Is it possible to combine LIKE and IN in a SQL Server-Query?

So, that this query

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

Finds any of these possible matches:

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

etc...

0

6 Answers

Effectively, the IN statement creates a series of OR statements... so

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

Is effectively

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

And sadly, that is the route you'll have to take with your LIKE statements

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

I know this is old but I got a kind of working solution

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

You can expand it further with your where clause etc. I only answered this because this is what I was looking for and I had to figure out a way of doing it.

16

One other option would be to use something like this

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 
5

No, you will have to use OR to combine your LIKE statements:

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

Have you looked at Full-Text Search?

0

You need multiple LIKE clauses connected by OR.

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

No, MSSQL doesn't allow such queries. You should use col LIKE '...' OR col LIKE '...' etc.

You Might Also Like