我有一个从程序中调用的存储过程。此存储过程传递了2个名称,需要在数据库中查找相似的名称。但是,当我尝试比较-“ AFC伯恩茅斯”与数据库中的名称“伯恩茅斯”时。
bet.searchFixtureForResult
@homeTeam NVARCHAR(MAX),
@awayTeam NVARCHAR(MAX),
@date DATE
AS
SELECT fixtureId
FROM bet.fixture
WHERE homeTeam IN (SELECT teamId
FROM bet.team
WHERE team LIKE '%' + @homeTeam + '%')
AND awayTeam IN (SELECT teamId
FROM bet.team
WHERE team LIKE '%' + @awayTeam + '%')
AND fixtureDate = @date
这应该返回属于给定参数内的灯具的ID。如何比较相似的字符串,以使我以与C#中的.Contains
相同的方式进行比较?
答案 0 :(得分:2)
我认为您根本不需要bet.team
,您的查询就像
SELECT fixtureId
FROM bet.fixture
WHERE (HomeTeam LIKE '%' + @HomeTeam + '%' OR @HomeTeam LIKE '%' + HomeTeam + '%')
AND
(AwayTeam LIKE '%' + @AwayTeam + '%' OR @AwayTeam LIKE '%' + AwayTeam + '%')
AND
fixtureDate = @date;
这里有一些 Demo