mariaDB
마리아db regexp_replace 숫자만 추출
xemaker
2020. 6. 19. 20:33
마리아 db를 사용하다가 코드값인데 영문과 숫자가 섞여있고 숫자만 써야할 일이 생긴다.
예를들어 코드값이 AA123, BB1233,CDE2345 이렇게 영문,숫자가 섞여있을때 숫자가 1000 이하인것들만 추출할 경우이다.
select * from dept where regexp_replace(dept_id,'[a-z]','')<1000 and regexp_replace(dept_id,'[a-z]','')!=''
이런식으로 regexp_replace 함수를 쓰면 된다. 부서코드에 영문 [a-z] 이 있으면 '' 공백으로 바꾼다.
바꾸고 나서 값이 없는 경우도 있으니 공백만 있는경우 '' 는 뺀다.
참고로..
정규식을 통해 한글, 영문, 특문, 숫자를 제거 하는 방법입니다.
1. 한글제거
- SELECT REGEXP_REPLACE('ab12cd한글(테스트)','[가-힣]','') AS remove_digits;
2. 숫자제거
- SELECT REGEXP_REPLACE('ab12cd한글(테스트)','[0-9]','') AS remove_digits;
3. 영문제거
- SELECT REGEXP_REPLACE('ab12cd한글(테스트)','[a-z]','') AS remove_digits;
4. 한글과 특수문자 ( ) 제거
- SELECT REGEXP_REPLACE('ab12cd한글(테스트)','[가-힣()]','') AS remove_digits;