我需要运行此查询,但是它什么也没显示:
select *
from table
where countries like '%Canada Italy France Belgica%'
但是我的数据库中有这些值:
Countries: "Canada, Italy, France, Bélgica"
如果我执行此查询,它将起作用:
select *
from table
where countries like '%Canada, Italy, France, Bélgica%'
答案 0 :(得分:1)
您似乎想对特殊字符进行特殊处理。 您想将逗号视为不存在,并且要将'é'与'e'等同对待。 因此,将所有逗号替换为空字符串,并将所有“é”替换为“ e”,然后进行比较。
App_Start
答案 1 :(得分:0)
使用以下具有固定名称的查询
select * from table where countries in ('Canada', 'Italy', 'France', 'Bélgica')
或以下带有通配符的
select * from table where countries like '%Canada%' or countries like 'France%'
答案 2 :(得分:0)
在...之间交换您的like子句,以便查看列表中是否有任何内容与您的列匹配。
create table #myTable(countries nvarchar(64))
insert into #myTable
values
(N'Bélgica')
,(N'Canada')
,(N'France')
select *
from #myTable
where 'Canada Italy France Belgica' like '%' + countries + '%'
如果您确实在列中用逗号分隔了列表,那么您需要使用字符串分隔符。堆栈溢出有数十个示例。
答案 3 :(得分:0)
您的表格中可能有ID之类的列,您可以在
中进行选择divu