SQL 코딩테스트 복기 -문자열 부분수정(마스킹)하는 방법(concat + substr)-

1. 문자열 바꾸기

 

문자열의 앞 두글자를 **로 대체해서 출력하라고 하면 어떻게 해야할까?

 

 

구체적으로 위와 같이 주어졌을때, 각 문자열 값들의 앞 두글자를 **로 바꾸고 싶다.

 

select concat('**',substr(name,3)) as user_id from test;

 

concat과 substr 함수를 이용해서 바꿀 수 있다

 

아니 모르면 못풀잖아

 

 

 

2. concat

 

concat(str1,str2,str3,...)

 

연결할 문자열들을 나열해서, 하나의 문자열로 만들어준다

 

 

 

3. substr

 

substr(str,pos,len)

 

str을 pos부터 시작해서 len만큼 추출

 

pos는 추출할 문자열 str의 시작 위치 index

 

 

index는 1부터 시작하며

 

 

 

 다음과 같이 음수 인덱스도 가능하다.

 

 

 

 

len은 생략가능하며, 생략하면 문자열 끝까지 추출함

 

다음은 2번부터 길이 5만큼 출력하는 코드

 

 

 

4. 코드 분석

 

select concat('**',substr(name,3)) as user_id from test;

 

name의 문자열 값들을 3번부터 끝까지 추출하면 substr(name,3)이고,

 

'**'과 substr(name,3)을 concat으로 연결하면, name의 앞 두글자를 **로 대체하게 되며,

 

원래 name인 column명을 user_id로 바꿔서 출력

 

 

https://velog.io/@modolee/mysql-substr-concat-replace-part-of-a-string

 

🐬 MySQL - 부분 문자열(SUBSTR), 합치기(CONCAT)를 이용한 문자열 부분 수정

MySQL 이용 시 특정 column 의 문자열 값을 일괄적으로 수정해야 되는 경우가 발생합니다. 그때 SUBSTR, CONCAT을 사용해서 간단히 해결할 수 있는 방법을 정리 했습니다.

velog.io

 

 

TAGS.

Comments