2014-08-28 2 views
0

테이블의 특정 열 셀에 주어진 값 중 하나가 포함되어 있는지 확인하는 가장 효과적인 방법은 무엇입니까?입력 값이 큰 열에 값이 있는지 알아보십시오.

배경 지식을 얻기 위해 1000 개의 ID 번호 목록이 있습니다. 파일 이름의 일부로 "ProcessedFiles"테이블의 "FileName"열에 존재할 수도 있고 존재하지 않을 수도 있습니다.

기본적으로 1000 개의 작업 중 처리 된 항목 (즉, 테이블에 존재하는 항목)을 확인해야합니다. 내가와 함께

것은 매우 uneffective 보인다 도움을

SELECT * FROM ProcessedFiles 
WHERE FileName LIKE '%54332423%' 
OR FileName LIKE '%234432%' 
OR FileName LIKE '%342342%' 
... 

감사합니다!

+0

숫자가 포함 된 일부 일관된 파일 이름이 있습니까? 문자 그대로 숫자의 일부가 될 수 있습니까? 예를 들어 숫자가'123'이라면, 파일 이름은'XXX-123-YYY.DAT'와 같이 구조화되었거나'AB9812356X.DAT'와 같은 곳일 수 있습니다. – Bohemian

+0

어떤 RDBMS를 사용하고 있습니까? –

+0

@RuslanVeselov - MicrosoftSQL Serwer를 사용하고 있습니다. – Bartosz

답변

1

임시 테이블을 만들고 모든 ID를 열에 삽입 할 수 있습니다. 그런 다음 사용될 processedfiles 테이블과 결합 된 크로스와 등으로 이름으로 ID를 확인할 수 :

SELECT pf.* 
FROM ProcessedFiles pf,table t 
WHERE pf.FileName like '%'+t.Id+'%' 

나는 위의 테스트는 SQL Server에서 일했다.

+1

그리고 모든 SQL 삽입물 진술? OP의 쿼리와 거의 같습니다. – Bohemian

관련 문제