SELECT *
FROM company_address
WHERE address_telephone LIKE '%12%'
AND address_telephone LIKE '%45%' (edit)
簡短問題:有沒有辦法只使用列名一次?具有多個LIKE的SQL超過1個變量
(編輯:這是一個例子,遺憾的是..)
SELECT *
FROM company_address
WHERE address_telephone LIKE '%12%'
AND address_telephone LIKE '%45%' (edit)
簡短問題:有沒有辦法只使用列名一次?具有多個LIKE的SQL超過1個變量
(編輯:這是一個例子,遺憾的是..)
簡短的回答:沒有
附註:我不知道查詢您的業務規則,但它看起來像你可能想要使用OR
而不是AND
。
長答案:如果是平等,可以使用IN
。但是,由於您使用的是LIKE
,因此您必須指定每個LIKE
條件。
謝謝..猜猜這將是一個長查詢然後.. – Sem
,是:
SELECT *
FROM company_address
WHERE address_telephone LIKE '%125%'
解釋如果address_telephone LIKE '%125%'
爲真 則address_telephone LIKE '%12%'
也必須是真,因此不需要將其添加到查詢中。
通常可以使用通配符等將多個喜歡組合成一個語句。請參閱下面的一個簡單的例子
declare @test varchar(50)
set @test = '123456789'
select 'true' where @test like '123%456%9'
編輯:返回「真」,順便
也許你正在尋找一個Levenshtein distance功能?它應該允許你做一個模糊搜索。有一個here。
如果你真的想這樣做,在一個搜索,你可以把你的搜索條件到一個表變量,並做一個通配符加入:
DECLARE @t table (s varchar(20))
insert into @t values('12')
insert into @t values('45')
select ca.* from company_address ca inner join
@t t on ca.address_telephone like '%' + t.s + '%'
好像沒有理由有LIKE '%12%'。爲什麼不只喜歡「%125%」? – abresas