다른 명령
정규식 패턴
regexp '문자'
attach_file '문자' : 아무런 기호가 없는 것 -> like '% 문자 % '와 일치
mysql> select * from pet where species regexp 'do' ; -> do가 최소한 1회 일치 (= SELECT * FROM pet WHERE species LIKE '%do%'; )
mysql> SELECT * FROM pet WHERE name REGEXP 'w';
regexp '?'
attach_file
- ? : 글자 0 개 또는 1 개 일치 -> books? : book, books
mysql> select * from pet where species regexp 'do?'; -> d 또는 do가 일치
regexp '.'
- . : 단일문자를 매치시킨다. 즉 문자 하나 일치 ->.ap : map, jap, kap, lap ....
mysql> select * from pet where species regexp '.d'; ->단일문자 d로 끝나는 앞의 모든 문자
mysql> select * from pet1 where species regexp 'd.'; -> 단일문자 d로 시작되는 뒤의 모든 문자
위에서 d.로 검색하는 경우에 bird는 검색되지 않음에 유의함.
mysql> select * from pet1 where species regexp '.d.'; 중간에 d가 들어가는 문자
mysql> select * from pet where name regexp '^.....$'; -> 시작부터 5글자로 끝나는 문장을 찾는다.
(= SELECT * FROM pet WHERE name REGEXP '^.{5}$'; )
mysql> select * from pet where name regexp '.....$'; -> 끝에서 5글자 이상이 되는 문장
regexp '+'
- + : 문자 여러개 반복(1자 이상 일치) -> la+ : la, laa,laaa ...
mysql> select * from pet where name regexp 'f+'; -> f가 1회 이상 반복
regexp '*'
- * : 문자 여러개 반복(0자 이상 일치) -> la* : l, la, laa, laaa...
mysql> select * from pet where name regexp 's*'; -> s가 0회 이상 들어 있는 문자
regexp '^'
(6) ^ : 문자열의 처음 -> ^1 -> 1로 시작되는 줄 mysql<source lang=sql>> select * from pet where owner regexp '^b'; -> b로 시작되는 문자 (= SELECT * FROM pet WHERE owner LIKE 'b%'; )
mysql> SELECT * FROM pet WHERE name REGEXP BINARY '^b';
바이너리 키워드로 인해 소문자 b로 시작하는 이름을 찾는다.
regexp '$'
- $ : 문자열의 끝 -> 1$ -> 1로 끝나는 줄
mysql> select * from pet where name regexp 'r$'; -> 끝이 r로 끝나는 문자
regexp '(그룹)'
- () : 그룹화 ->('(abc)*') : 'abc'문자열이 연속적으로 0 번 이상
regexp '[문자]'
- [문자들..] : 괄호안의 어느 문자와 일치
<source lang=sql>mysql> select * from pet where name regexp '[ab]'; -> 문장 중에 a 또는 b 가 들어 있는 문자
mysql> select * from pet where name regexp '^[bc]'; -> b 또는 c로 시작되는 문자
mysql> select * from pet where death regexp '[0-9]'; [0-9] -> 모든 숫자
mysql> select * from pet where sex regexp '[A-Za-z]'; [A-Za-z] -> 모든 영문글자
</source>
regexp '{숫자}'
(10){숫자} : 숫자만큼 반복 // {2,4} -> 2회 ~ 4회 반복 mysql> select * from pet where name regexp 'ow{1}'; -> ow 1회
mysql> select * from pet where owner regexp 'n{1,2}'; -> n이 1회 또는 2회되는 문자
- {n}('repeat-n-times') 연산자를 사용했다.
mysql> SELECT * FROM pet WHERE name REGEXP '^.{5}$'; -> 시작부터 5문자가 되는 문자
regexp '|'
- | : OR 연산 (또는) -> ('A|B') : A 또는 B
mysql> select * from pet where name regexp '^c|y$';
regexp '문자'
- - : 문자의 지정 범위는 -를 사용한다. -> [0-9] : 모든 숫자 , [a-z] : 모든 영문자
mysql> select * from pet where name regexp '^[a-f]';
RLIKE '문자'
- mysql> select 필드명 from 테이블명 where 필드명 RLIKE 'digit:+';
</source> 문자열에 숫자가 포함된 행을 구하는 SQL 구문
mysql> select * from pet where death rlike '[[:digit:]]+';