查找表中特定列单元格是否包含给定值之一的最有效(且简单)方法是什么?
为了给你一些背景知识,我列出了1000个身份证号码。它们可能存在也可能不存在于表“ProcessedFiles”的“FileName”列中,作为文件名的一部分。
基本上,我需要检查这1000个任务中的哪一个已被处理(即它们存在于表中)。
我带来的东西似乎非常无效:
SELECT * FROM ProcessedFiles
WHERE FileName LIKE '%54332423%'
OR FileName LIKE '%234432%'
OR FileName LIKE '%342342%'
...
等
感谢您的帮助!
答案 0 :(得分:1)
您可以创建临时表并在列中插入所有ID。然后,您可以与ProcessedFiles表交叉连接,并使用类似名称检查名称中的id:
SELECT pf.*
FROM ProcessedFiles pf,table t
WHERE pf.FileName like '%'+t.Id+'%'
我测试了上述内容,它适用于SQL Server。