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