집 >데이터 베이스 >MySQL 튜토리얼 >.NET 쿼리에서 LIKE 및 IN 조건을 매개 변수화하는 방법은 무엇입니까?
LIKE 및 IN 조건을 사용하는 매개변수화된 쿼리
.Net의 매개변수화된 쿼리에는 일반적으로 특정 매개변수 이름을 사용하고 이러한 매개변수에 값을 추가하는 작업이 포함됩니다. 그러나 다중 또는 동적 매개변수 값이 필요할 수 있는 IN 또는 LIKE와 같은 조건을 처리할 경우 구문이 더 복잡해질 수 있습니다.
구체적인 문제를 해결해 보겠습니다. 질문:
쿼리:
SELECT * FROM Products WHERE Category_ID IN (@categoryids) OR name LIKE '%@name%'
매개변수:
수정된 구문:
생성하려면 완전히 매개변수화된 쿼리의 경우 IN 조건에 대한 매개변수 이름과 값을 동적으로 구성해야 합니다. 루프를 사용하여 이를 달성할 수 있습니다:
int[] categoryIDs = ...; string Name = ...; SqlCommand comm = ...; string[] parameters = new string[categoryIDs.Length]; for (int i = 0; i < categoryIDs.Length; i++) { parameters[i] = "@p" + i; comm.Parameters.AddWithValue(parameters[i], categoryIDs[i]); } comm.Parameters.AddWithValue("@name", $"%{Name}%");
수정된 쿼리 텍스트:
생성된 매개변수 이름을 IN 조건에 연결:
WHERE Category_ID IN (@p0, @p1, ...)
최종 쿼리 텍스트는 다음과 같습니다.
SELECT * FROM Products WHERE Category_ID IN (@p0, @p1, ...) OR name LIKE @name
이 접근 방식은 다음을 보장합니다. 각 CategoryID는 개별적으로 매개변수화되고 LIKE 조건도 적절한 패턴 구문으로 매개변수화됩니다. 쿼리를 완전히 매개변수화하면 SQL 삽입을 방지하고 성능을 향상시킬 수 있습니다.
위 내용은 .NET 쿼리에서 LIKE 및 IN 조건을 매개 변수화하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!