SQLite-GLOB 절

SQLite GLOB연산자는 와일드 카드를 사용하여 패턴에 대해 텍스트 값만 일치시키는 데 사용됩니다. 검색 표현식이 패턴 표현식과 일치 할 수있는 경우 GLOB 연산자는 true (1)를 리턴합니다. LIKE 연산자와 달리 GLOB는 대소 문자를 구분하며 다음 와일드 카드를 지정하기 위해 UNIX 구문을 따릅니다.

  • 별표 (*)
  • 물음표 (?)

별표 기호 (*)는 0 개 또는 여러 개의 숫자 또는 문자를 나타냅니다. 물음표 (?)는 단일 숫자 또는 문자를 나타냅니다.

통사론

다음은 기본 구문입니다. *?.

SELECT FROM table_name
WHERE column GLOB 'XXXX*'
or 
SELECT FROM table_name
WHERE column GLOB '*XXXX*'
or
SELECT FROM table_name
WHERE column GLOB 'XXXX?'
or
SELECT FROM table_name
WHERE column GLOB '?XXXX'
or
SELECT FROM table_name
WHERE column GLOB '?XXXX?'
or
SELECT FROM table_name
WHERE column GLOB '????'

결합 할 수 있습니다. NAND 또는 OR 연산자를 사용하는 조건 수. 여기서 XXXX는 숫자 또는 문자열 값이 될 수 있습니다.

다음 표에는 '*'및 '?'와 함께 서로 다른 LIKE 절이있는 WHERE 부분을 보여주는 여러 예가 나열되어 있습니다. 연산자.

Sr. 아니. 성명 및 설명
1

WHERE SALARY GLOB '200*'

200으로 시작하는 모든 값을 찾습니다.

2

WHERE SALARY GLOB '*200*'

임의의 위치에 200이있는 모든 값을 찾습니다.

WHERE SALARY GLOB '?00*'

두 번째 및 세 번째 위치에 00이있는 모든 값을 찾습니다.

4

WHERE SALARY GLOB '2??'

2로 시작하고 길이가 3 자 이상인 모든 값을 찾습니다.

5

WHERE SALARY GLOB '*2'

2로 끝나는 모든 값을 찾습니다.

6

WHERE SALARY GLOB '?2*3'

두 번째 위치에 2가 있고 3으로 끝나는 값을 찾습니다.

7

WHERE SALARY GLOB '2???3'

2로 시작하고 3으로 끝나는 5 자리 숫자의 값을 찾습니다.

실제 예를 들어 다음 레코드가있는 COMPANY 테이블을 고려해 보겠습니다.

ID          NAME        AGE         ADDRESS     SALARY
----------  ----------  ----------  ----------  ----------
1           Paul        32          California  20000.0
2           Allen       25          Texas       15000.0
3           Teddy       23          Norway      20000.0
4           Mark        25          Rich-Mond   65000.0
5           David       27          Texas       85000.0
6           Kim         22          South-Hall  45000.0
7           James       24          Houston     10000.0

다음은 AGE가 2로 시작하는 COMPANY 테이블의 모든 레코드를 표시하는 예입니다.

sqlite> SELECT * FROM COMPANY WHERE AGE  GLOB '2*';

그러면 다음과 같은 결과가 생성됩니다.

ID          NAME        AGE         ADDRESS     SALARY
----------  ----------  ----------  ----------  ----------
2           Allen       25          Texas       15000.0
3           Teddy       23          Norway      20000.0
4           Mark        25          Rich-Mond   65000.0
5           David       27          Texas       85000.0
6           Kim         22          South-Hall  45000.0
7           James       24          Houston     10000.0

다음은 ADDRESS가 텍스트 내부에 하이픈 (-)이있는 COMPANY 테이블의 모든 레코드를 표시하는 예입니다.

sqlite> SELECT * FROM COMPANY WHERE ADDRESS  GLOB '*-*';

그러면 다음과 같은 결과가 생성됩니다.

ID          NAME        AGE         ADDRESS     SALARY
----------  ----------  ----------  ----------  ----------
4           Mark        25          Rich-Mond   65000.0
6           Kim         22          South-Hall  45000.0