현재 전달되는 동적 키워드 수를 기반으로 결과를 반환하는 SQL 쿼리가 있습니다.SQL 검색 키워드를 사용한 쿼리
키워드 목록을 테이블로 변환하여 조인합니다.
SELECT * FROM Table1
INNER JOIN
dbo.udf_List2Table(@Keywords, ',') ON (Field1 LIKE '%'+Keyword+'%')
이 잘 작동하지만 suppiled하는 키워드 어떤를 포함하는 모든 행을 반환합니다. 내가 무엇을하고 싶습니다 모든 키워드의가 포함 된 모든 행을 반환합니다.
나는 JOIN을 사용하여 이것을 할 수 없다고 확신한다. 아무도 내가 이것을 할 수있는 방법에 대한 제안이 있습니까? 동적 SQL을 피하려고합니다.
감사
키워드'' '를 (를) 검색하면 SQL 인젝션이 발생하기 쉽습니다. DROP TABLE table1; -' –
@ 존, 저는 이것이 구문을 설명하기 위해 변수와 문자열 리터럴을 사용하는 단순한 예라고 생각합니다. 현실 세계에서 나는 @Keywords가 SQL injection에 취약하지 않은 저장 프로 시저의 매개 변수라고 의심합니다. –
@Jon : 아니요, 바운드 매개 변수로 키워드를 전달하는 한 그렇지 않습니다. – Quassnoi