MsSql where field LI INKE(LIST)

Mar*_*eri 3 sql-server search where-clause

我一直在寻找一段时间,遗憾的是似乎找不到解决方案.

基本上我有一个逗号分隔的关键字字符串,我已经使用一个函数转换成一个列表,该函数接受一个@String并返回一个TABLE(Value varchar(30)).到现在为止还挺好.

我现在可以在where子句中使用此列表,如下所示:

SELECT project.*
FROM Projects project 
WHERE project.title IN (SELECT * FROM dbo.ParamsToList('.net,test'))
Run Code Online (Sandbox Code Playgroud)

这与project.title完全(等于)任何一个关键字(.net或test)相匹配.

我需要的是匹配标题是LIKE'%'+任意关键字+'%'.

任何帮助将不胜感激.

谢谢

Ada*_*Dev 5

一种方法是这样的:

SELECT project.*
FROM Projects project 
WHERE EXISTS
    (
        SELECT * FROM dbo.ParamsToList('.net,test') x 
        WHERE project.title LIKE '%' + x.value + '%'
    )
Run Code Online (Sandbox Code Playgroud)

如果项目匹配params列表中的多个值,则此方法将意味着您不会多次返回相同的项目.