ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 정규식
    개발/DB 2024. 10. 25. 10:39

    Mysql 내 컬럼 내 특정값을 추출해야할 때가 있다.

    이런 경우 정규식을 이용하거나 substring_index 함수를 활용하여 값을 추출할 수 있다.

    예를 들어 json양식으로 된 order_json 이라는 컬럼에  데이터가 아래와 같이 들어가 있다고 가정을 해보자 

    {"odNo":"123123" , "odrNm":"홍길동"}

     

    이중 주문번호에 해당하는 값만 추출을 하고 싶으면 정규식으로는 ('"odNo:"?')\("[0-9]+")을 하게 되면 "odNo:"123123"이 나오게 될 것이다 

    이를 다시 한번 정규 표현식을 통해 숫자부분('[0-9]')만 추출을 할 수 있다 

     

    select 
     REGEXP_SUBSTR(REGEXP_SUBSTR(order_json,'("odNo":?)\([0-9]+)')'),'[0-9]+') 
    from order_table ;

     

    위 정규식에 대한 함수를 구분지어 살펴보자

    1.()의 경우 그룹을 구분 짓기 위해 사용한다

    2.[0-9]의 경우 0~9까지의 숫자를 나타낸다 

    3.+의 경우 그룹내 요소의 전체를 나타낸다.

    4.?의 경우 존재 여부를 나타낸다

    5.\의 경우 and 조건을 나타낸다 

     

    위 내용을 통해서 설명해보자면 "odNo":가 참이면 뒤에 나오는 요소가 숫자인 요소를 가지고 온 후 숫자인 요소만 추출을 해라는 의미로 해석 될 수 있다. 

     

    댓글

Designed by Tistory.