SQLite Glob 절
SQLite의 GLOB 연산자는 와일드카드로 지정된 패턴을 일치시키는 데 사용되는 텍스트 값입니다. 검색 표현식이 패턴 표현식과 일치하면 GLOB 연산자는 true(1)를 반환합니다. LIKE 연산자와 달리 GLOB는 대소문자를 구분하며 다음 와일드카드 문자에 대해 UNIX 구문을 따릅니다.
별표(*)
물음표(?)
별표(*)는 0, 하나 이상의 숫자 또는 문자. 물음표(?)는 단일 숫자 또는 문자를 나타냅니다. 이러한 기호는 조합하여 사용할 수 있습니다.
구문
* ?의 기본 구문은 다음과 같습니다.
SELECT FROM table_name
WHERE 열 GLOB 'XXXX*'
또는
SELECT FROM table_name
WHERE 열 GLOB '*XXXX*'
또는
SELECT FROM table_name
WHERE 열 GLOB 'XXXX? '
또는
SELECT FROM table_name
WHERE 열 GLOB '?XXXX'
또는
SELECT FROM table_name
WHERE 열 GLOB ' ?XXXX ?'
or
SELECT FROM table_name
WHERE 열 GLOB '????'
WHERE 열 GLOB 'XXXX*'
또는
SELECT FROM table_name
WHERE 열 GLOB '*XXXX*'
또는
SELECT FROM table_name
WHERE 열 GLOB 'XXXX? '
또는
SELECT FROM table_name
WHERE 열 GLOB '?XXXX'
또는
SELECT FROM table_name
WHERE 열 GLOB ' ?XXXX ?'
or
SELECT FROM table_name
WHERE 열 GLOB '????'
AND 또는 OR 연산자를 사용하여 N을 결합할 수 있습니다. 수량 조건. 여기서 XXXX는 임의의 숫자 또는 문자열 값일 수 있습니다.
예
다음 예는 '*' 및 '?' 연산자를 사용하는 GLOB 절의 차이점을 보여줍니다.
语句 | 描述 |
---|---|
WHERE SALARY GLOB '200*' | 查找以 200 开头的任意值 |
WHERE SALARY GLOB '*200*' | 查找任意位置包含 200 的任意值 |
WHERE SALARY GLOB '?00*' | 查找第二位和第三位为 00 的任意值 |
WHERE SALARY GLOB '2??' | 查找以 2 开头,且长度至少为 3 个字符的任意值 |
WHERE SALARY GLOB '*2' | 查找以 2 结尾的任意值 |
WHERE SALARY GLOB '?2*3' | 查找第二位为 2,且以 3 结尾的任意值 |
WHERE SALARY GLOB '2???3' | 查找长度为 5 位数,且以 2 开头以 3 结尾的任意值 |
COMPANY 테이블에 다음과 같은 레코드가 있다고 가정하여 실제적인 예를 들어보겠습니다.
ID “NAME “AGE “SALARY
---------- -- --- ----- ---------- ---------- ----------
1 Paul 32 캘리포니아 20000.0
2 Allen 25 텍사스 15000.0
3 ~
다음은 표시되는 예입니다. AGE가 2로 시작하는 COMPANY 테이블의 모든 레코드:
sqlite> SELECT * FROM COMPANY WHERE AGE GLOB '2*';---------- -- --- ----- ---------- ---------- ----------
1 Paul 32 캘리포니아 20000.0
2 Allen 25 텍사스 15000.0
3 ~
다음은 표시되는 예입니다. AGE가 2로 시작하는 COMPANY 테이블의 모든 레코드:
다음과 같은 결과가 나옵니다.
ID ~ ------ ---------- ----------
2 25 텍사스 15000.0 > 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
The 다음은 COMPANY 테이블의 ADDRESS 텍스트를 표시하는 예입니다. 하이픈(-)이 포함된 모든 레코드: 2 25 텍사스 15000.0 > 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
다음과 같은 결과가 나옵니다.
ID 이름 나이 주소 급여------------ ---------- - ----------- --- ------- ----------
4 마크 25 리치몬드 65000.0
6 김 22 남- 홀 45000.0
6 김 22 남- 홀 45000.0