SQLite 클래식 튜토리얼login
SQLite 클래식 튜토리얼
작가:php.cn  업데이트 시간:2022-04-13 17:05:02

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 '????'

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*';

다음과 같은 결과가 나옵니다.

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 텍스트를 표시하는 예입니다. 하이픈(-)이 포함된 모든 레코드:

sqlite> SELECT * FROM COMPANY WHERE ADDRESS GLOB '*-*';
다음과 같은 결과가 나옵니다.

ID 이름 나이 주소 급여
------------ ---------- - ----------- --- -------  ----------
4           마크        25          리치몬드   65000.0
6           김         22          남- 홀  45000.0