https://en.wikipedia.org/wiki/Halfwidth_and_Fullwidth_Forms_(Unicode_block)
- SQL Regex(Regular expression )
https://dev.mysql.com/doc/refman/8.0/en/regexp.html
- 예)
SELECT 'test123' REGEXP '^[\\"\\,a-zA-Z\\[\\] ]+$';
SELECT REGEXP_LIKE( 'test123' , '^[\\"\\,a-z\\[\\] ]+$' , 'i');
- 이스케이핑을 위한 백슬래쉬 문자(\)는 2번 쓴다
- REGEXP , RLIKE , REGEXP_LIKE 는 모두 같은 기능
- NOT REGEXP : REGEXP에 NOT 적용
- REGEXP_LIKE 3번째 인자에 옵션을 줄수있다.
- c: 대소문자 구분
- i: 대소문자 구분 안함
- m: 멀티 라인 모드
//-----------------------------------------------------------------------------
* 유니코드 숫자 이용 검색 방법(mysql regex search where unicode character number)
- 예) 빈칸이 3개 이상, "<p> </p>"
REGEXP_LIKE( str, '<p>[\\u3000]{3,}</p>')
* 한글 포함 판단
REGEXP_LIKE( 'a가a', '[\\uAC00-\\uD7AF]'), // 완성된 글자만 검사
REGEXP_LIKE( 'ㅋ', '[ㄱ-ㅎ|ㅏ-ㅣ|가-힣]'), // 독립 자음, 모음 포함 검사
전각문자(일본어)
content REGEXP '[\\uFF01-\\uFF5E]' # 전각문자 전체
content REGEXP '[\\uFF10-\\uFF19\\uFF21-\\uFF3A\\uFF41-\\uFF5A]' # 전각문자중 0-9a-zA-Z
https://en.wikipedia.org/wiki/Halfwidth_and_Fullwidth_Forms_(Unicode_block)
https://www.utf8-chartable.de/unicode-utf8-table.pl?start=65280&utf8=char
//--------------------------------------------
< 함수 >
* REGEXP_INSTR(소스 문자열, 정규식 패턴, 검색 시작 위치, 발견된 수치)
- 찾은 위치 리턴
SELECT REGEXP_INSTR('aa aaa aaaa', 'a{4}');
=> 8
//-------------------
* REGEXP_REPLACE(소스 문자열, 정규식 패턴, 교체할 문자열, 검색 시작 위치, 발견된 수치)
- 문자열 교체
SELECT REGEXP_REPLACE('abc def ghi', '[a-z]+', 'X', 1, 3);
=> abc def X
//-------------------
* REGEXP_SUBSTR(소스 문자열, 정규식 패턴, 검색 시작 위치, 발견된 수치 )
- 문자열 추출
SELECT REGEXP_SUBSTR('abc def ghi', '[a-z]+', 1, 3);
=> ghi
'Code > Database (DB)' 카테고리의 다른 글
[SQL] 모든 레코드의 문자열 변경 (정규식) (0) | 2020.09.14 |
---|---|
[sql] 레코드에 특정 값이 없으면 추가하기(중복 방지) (0) | 2020.09.12 |
[SQL] 추가(INSERT) 시도, 이미 있으면 갱신(UPDATE) [한방쿼리] (0) | 2020.08.07 |
[SQL] 날짜별 레코드 카운트 구하기 (0) | 2020.07.31 |
[SQL] 테이블 자료 용량 확인 (0) | 2020.07.26 |