【发布时间】:2020-04-05 12:53:40
【问题描述】:
下面是我的桌子,
create table t(
id int,
colParam varchar(max))
insert into t values(1,'["param1", "param2"]')
insert into t values(2,'["param2"]')
insert into t values(3,'["param1"]')
insert into t values(4,'["param2", "param3"]')
insert into t values(5,'["param1", "param2"]')
试过
declare @str varchar(max) = 'param1'; Select * from t where colParam like '%'+ @str+'%'
它不适合
declare @str varchar(max) = 'param1,param2'; Select * from t where colParam like '%'+ @str+'%'
我想通过传递colPar as 'param1,param2' 来选择行,所以它会导致我在 colParam 中包含 param1 和 param2 的所有记录
【问题讨论】:
-
所以根据您的示例数据,它应该只返回 ID=1 和 5?
-
不,我应该全部返回,因为 param1 和 param2 存在于所有记录中。当我说 param3 它应该返回 Id =4,在 param1 上它应该返回 Id =1,3,5
标签: sql arrays select where-clause sql-like