是否可以在 SQL Server 查询中组合LIKE
和?IN
所以,这个查询
SELECT * FROM table WHERE column LIKE IN ('Text%', 'Link%', 'Hello%', '%World%')
查找以下任何可能的匹配项:
Text, Textasd, Text hello, Link2, Linkomg, HelloWorld, ThatWorldBusiness
ETC...
实际上,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%'
我知道这很旧,但我有一种可行的解决方案
SELECT Tbla.* FROM Tbla
INNER JOIN Tblb ON
Tblb.col1 Like '%'+Tbla.Col2+'%'
您可以使用 where 子句等进一步扩展它。我只回答了这个问题,因为这是我正在寻找的东西,我必须想办法做到这一点。
另一种选择是使用这样的东西
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 连接多个 LIKE 子句。
SELECT * FROM table WHERE
column LIKE 'Text%' OR
column LIKE 'Link%' OR
column LIKE 'Hello%' OR
column LIKE '%World%' OR
不,MSSQL 不允许这样的查询。你应该使用col LIKE '...' OR col LIKE '...'
等。