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

SQLite Like 절


SQLite의 LIKE 연산자는 와일드카드로 지정된 패턴의 텍스트 값을 일치시키는 데 사용됩니다. LIKE 연산자는 검색 표현식이 패턴 표현식과 일치하는 경우 true(1)를 반환합니다. LIKE 연산자에는 두 개의 와일드카드 문자가 사용됩니다.

  • 퍼센트 기호(%)

  • 밑줄(_)

퍼센트 기호(%)는 0, 하나 이상의 숫자 또는 문자를 나타냅니다. 밑줄(_)은 단일 숫자 또는 문자를 나타냅니다. 이러한 기호는 조합하여 사용할 수 있습니다.

구문

%와 _의 기본 구문은 다음과 같습니다.

SELECT FROM table_name
WHERE 열 LIKE 'XXXX%'

또는

SELECT FROM table_name
WHERE 열 LIKE '%XXXX%'

또는

SELECT FROM table_name
WHERE 열 LIKE 'XXXX_ '

또는

SELECT FROM table_name
WHERE 열 LIKE '_XXXX'

또는

SELECT FROM table_name
WHERE 열 LIKE '_XXXX_ '

AND 또는 OR 연산자를 사용하여 N개의 조건을 결합할 수 있습니다. 여기서 XXXX는 임의의 숫자 또는 문자열 값일 수 있습니다.

다음 예에서는 '%' 및 '_' 연산자를 사용하는 LIKE 절의 차이점을 보여줍니다.

语句描述
WHERE SALARY LIKE '200%'查找以 200 开头的任意值
WHERE SALARY LIKE '%200%'查找任意位置包含 200 的任意值
WHERE SALARY LIKE '_00%'查找第二位和第三位为 00 的任意值
WHERE SALARY LIKE '2_%_%'查找以 2 开头,且长度至少为 3 个字符的任意值
WHERE SALARY LIKE '%2'查找以 2 结尾的任意值
WHERE SALARY LIKE '_2%3'查找第二位为 2,且以 3 结尾的任意值
WHERE SALARY LIKE '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 LIKE '2%';

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

ID                                                                            ~          ------  ----------  ----------
2 Allen       25          텍사스       15000.0
3          테디       23          노르웨이      20000.0
4           마크        25          Rich- Mond 65000.0
5 David 27 Texas 85000.0
6 Kim 22 South-Hall 45000.0
7 James 24 Houston 10000.0
다음은 COMPANY 테이블의 ADDRESS 텍스트를 표시하는 예입니다. 하이픈(-)이 포함된 모든 레코드:

sqlite> SELECT * FROM COMPANY WHERE ADDRESS LIKE '% -%';
다음 결과가 생성됩니다:

ID 이름 연령 주소 급여
------------ -- --------- ----------- --- -------  ----------
4           마크        25          리치몬드   65000.0
6           김         22          사우스홀  45000.0