我有1,700个名字的清单。我需要在数据库的一列中搜索这些名称,并搜索该名称的任何变体和顺序。例如,如果我搜索的名称是John Smith,我需要在列中搜索任何事件,包括“John Smith' Smith John','' ;史密斯,约翰'我在LIKE和IN上尝试了很多不同的变体,在不同的地方尝试了通配符,但是没有得到正确的结果。
假设该列被称为'名称'前3个名字是John Smith,Jane Doe和Joe Johnson,语法是什么?
我最接近的是
SELECT *
FROM Data
WHERE Name LIKE 'John Smith'
OR Name LIKE 'Jane Doe'
OR Name LIKE 'Joe Johnson'
上述问题是,它不会返回任何包含Doe,Jane的结果。
答案 0 :(得分:3)
我认为这可能会做你想要的:
where (name like '%John%' and name like '%Smith%') or
(name like '%Jane%' and name like '%Doe%') or
(name like '%Joe%' and name like '%Johnson%')