다음을 통해 공유


LIKE 연산자

LIKE 연산자는 문자열이 지정된 패턴과 일치하는지 여부를 결정합니다. 지정된 패턴은 정확히 일치시킬 문자를 포함하거나 메타 문자를 포함할 수 있습니다. 실제로 LIKE 연산자는 다음 표의 와일드카드 문자를 사용하여 부분 문자열과 일치합니다.

문자 묘사
[ ] 지정한 범위([a-f]) 또는 집합([abcdef]) 내의 모든 문자입니다.
^ 범위 내에 없는 문자([^a-f]) 또는 집합([^abcdef])입니다.
% 0(0) 이상의 모든 문자열입니다. 다음 예제에서는 클래스 이름에서 "Win"이 있는 모든 인스턴스를 찾습니다. SELECT * FROM meta_class WHERE __Class LIKE "%Win%"
_(밑줄) 한 문자. 쿼리 문자열에 사용되는 모든 리터럴 밑줄은 [](대괄호) 안에 배치하여 이스케이프되어야 합니다.

 

예를 들어 다음 Power Shell 코드는 Name 속성이 FirstName시작하는 Win32_operatingSystem 클래스의 모든 인스턴스를 검색합니다.

Get-WmiObject win32_computerSystem -filter "Name LIKE 'FirstName%'"

밑줄은 메타 문자이므로 쿼리 대상에 밑줄이 있는 경우 "[]" 이스케이프 문자가 밑줄을 묶어야 합니다. 예를 들어 이름에 이중 밑줄이 있는 모든 클래스를 쿼리할 수 있습니다.

이름에 이중 밑줄이 있는 모든 클래스를 찾으려면 [](대괄호)를 사용하여 두 밑줄을 모두 이스케이프해야 합니다. 예를 들면 다음과 같습니다.

SELECT * FROM meta_class WHERE __CLASS LIKE "%[_][_]%"

NOT을 사용하여 LIKE 문을 부정할 수 있습니다. 이렇게 하려면 NOT을 필드 이름 앞에 직접 배치해야 합니다. 예를 들어:

Get-WmiObject -computerName "." -query 'Select * FROM Win32_Printer WHERE Local="TRUE" AND Network ="False" AND DriverName LIKE "%HP%" AND NOT PortName LIKE "%10.%" AND NOT PortName LIKE "%\\%"'

WQL 연산자