정규식 문의드립니다..! 0 5 865

by 마이닝 [MySQL] [2019.01.16 15:34:48]


안녕하세요 정규식떄문에 .. 문의드려봐요

아래와같은 데이터가있는데 

1. 2018부여(by-5)

2. 거제시(계약140428_)

셀렉트해올떄 숫자나 영어및 특수문자는 전부제거 한다음  및 앞에 한글두글자만 가져오게 하고싶어요

결과물이 

1. 부여

2. 거제

이렇게 나오게 셀렉트할수있는 방법이있을까요 ...;

by 마농 [2019.01.16 16:31:36]
WITH t AS
(
SELECT 1 id, '2018부여(by-5)' v
UNION ALL SELECT 2, '거제시(계약140428_)'
)
SELECT id, v
     , REGEXP_SUBSTR(v, '[^ -~]{2}') x1    -- ' '(32) 부터 '~'(126) 사이 문자가 아닌것 2글자
     , REGEXP_SUBSTR(v, '[가-힣]{2}') x2    -- '가' 부터 '힣' 사이 문자 2글자
  FROM t
;

 


by 마이닝 [2019.01.16 16:41:46]

빠른답변 감사합니다..!  REGEXP_SUBSTR 함수가 써지지가않는데..

근데 mysql 7.7.056 사용 중인것 때문에 그렇겠죠...?..

위에 정규표현식이 두가지 조건이 동시에 들어가야하는데..

 '[^ -~][가-힣]{2}'   <- 이런방식으로 하면 두개가 될까요


by 마농 [2019.01.16 16:50:35]

아니요. 조건은 한가지만 선택해서 쓰면 됩니다.
정규표현식이 안된다면 다른 방법을 찾아야죠.


by 마이닝 [2019.01.16 16:54:48]

넵.. 다른방법으로 찾아서 해볼게요 감사합니다!


by 마농 [2019.01.16 17:51:52]

진짜로 있을 법한 자료들로만 Case 를 만들어 확인해야 합니다.
단순하게 위 예제만 보면 앞에 숫자만 제거하고 2글자 자르면 될 것 같네요.
케이스가 많아 질수록 복잡해 지겠죠.
우선, 어떤 Case 가 있는지 확인해 보세요.
아래는 한글이 아닌걸로 시작하는 것 찾기
 WHERE v REGEXP '^[^가-힣]'

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입