집 >데이터 베이스 >MySQL 튜토리얼 >.NET에서 LIKE 및 IN 조건을 사용하여 쿼리를 매개 변수화하는 방법은 무엇입니까?
LIKE 및 IN 조건을 사용한 매개변수화된 쿼리
.NET에서 매개변수화된 쿼리를 사용할 때 예제에서는 일반적으로 다음과 같은 간단한 시나리오에서 쿼리를 사용하는 방법을 보여줍니다. 단일 열 값을 매개변수와 비교합니다. 그러나 여러 매개변수 또는 비표준 문자가 포함된 IN 및 LIKE와 같은 조건을 처리할 때는 상황이 더 복잡해질 수 있습니다.
IN 조건을 사용한 쿼리
카테고리 ID를 기준으로 제품을 검색하는 쿼리입니다. 여기서 카테고리 ID는 쉼표로 구분된 목록일 수 있습니다.
SELECT * FROM Products WHERE Category_ID IN (@categoryids)
정수 배열 CategoryIDs를 사용하여 이 쿼리를 매개변수화하려면 배열을 반복하고 각 카테고리 ID에 대한 매개변수를 생성해야 합니다.
int[] categoryIDs = new int[] { 238, 1138, 1615, 1616, 1617 }; SqlCommand comm = conn.CreateCommand(); 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.CommandText = "SELECT * FROM Products WHERE Category_ID IN ("; comm.CommandText += string.Join(",", parameters) + ")";
쿼리 with LIKE 조건
이제 이름에 특정 문자열이 포함된 제품을 검색하는 LIKE 조건을 추가해 보겠습니다. 특수 문자도 가능합니다.
SELECT * FROM Products WHERE Category_ID IN (@categoryids) OR name LIKE '%@name%'
이 쿼리를 매개변수화하기 위해 이름 값에 대한 매개변수를 생성하고 연결을 사용하여 쿼리 내에서 이름을 검색합니다.
string Name = "someone"; SqlCommand comm = conn.CreateCommand(); comm.Parameters.AddWithValue("@name", $"%{Name}%"); comm.CommandText = "SELECT * FROM Products WHERE Category_ID IN ("; comm.CommandText += string.Join(",", parameters) + ")"; comm.CommandText += " OR name LIKE @name";
다음을 사용합니다. 이 접근 방식을 사용하면 다양한 매개변수 유형을 사용하여 IN 및 LIKE 조건을 모두 처리하는 완전히 매개변수화된 쿼리를 생성하여 데이터베이스 액세스의 보안과 성능을 보장할 수 있습니다.
위 내용은 .NET에서 LIKE 및 IN 조건을 사용하여 쿼리를 매개 변수화하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!