是否可以在SQL Server-Query中合并LIKE
和IN
?
那么,这个查询
SELECT * FROM table WHERE column LIKE IN ('Text%', 'Link%', 'Hello%', '%World%')
查找以下任何可能的匹配项:
Text, Textasd, Text hello, Link2, Linkomg, HelloWorld, ThatWorldBusiness
等...
答案 0 :(得分:228)
实际上,IN语句会创建一系列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%'
答案 1 :(得分:176)
我知道这已经过时了,但我得到了一种有效的解决方案
SELECT Tbla.* FROM Tbla
INNER JOIN Tblb ON
Tblb.col1 Like '%'+Tbla.Col2+'%'
您可以使用where子句等进一步扩展它。 我只回答了这一点,因为这正是我所寻找的,我必须找到一种方法。
答案 2 :(得分:100)
另一种选择是使用类似这样的东西
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
答案 3 :(得分:9)
不,您必须使用OR
来合并LIKE
语句:
SELECT
*
FROM
table
WHERE
column LIKE 'Text%' OR
column LIKE 'Link%' OR
column LIKE 'Hello%' OR
column LIKE '%World%'
你看过Full-Text Search吗?
答案 4 :(得分:7)
您需要通过OR连接多个LIKE子句。
SELECT * FROM table WHERE
column LIKE 'Text%' OR
column LIKE 'Link%' OR
column LIKE 'Hello%' OR
column LIKE '%World%' OR
答案 5 :(得分:3)
不,MSSQL不允许此类查询。您应该使用col LIKE '...' OR col LIKE '...'
等。