create table monument(ID int primary key,monument varchar(100);
insert into monument values(1,'Taj,Paris');
insert into monument values(2,'Taj');
insert into monument values(3,'Tajmahal,Gateway');
insert into monument values(4,'Burjkhalifa,Gateway of India');
假设我将参数传递为“ Taj,Gate”,因此我需要所有在纪念碑中包含Taj或Gate在字符串中的行。
答案 0 :(得分:1)
将逗号分隔的值存储在单列中是一个巨大的设计错误。
您需要将varchar值转换为数组,才能将CSV值视为单独的元素:
select *
from monument m
where string_to_array(m.monument, ',') && string_to_array('Taj,Gate', ',');