Sister Nosilv story

[TIL 16th] MySQL 문자열 속에 무언가를 삽입/대체하는 함수

by 노실언니

오늘 배운 것

1) 코드카타 SQL : CONCAT() 사용시 구분자를 삽입하려면 → CONCAT_WS(구분자, 문자열, ... )

풀었던 프로그래머스 문제 [링크]

concat_ws 는 Concatanation With Seperator 의 약자이다.

concat_ws()의 첫번째 인수에 구분자를 넣으면 된다.

(예시)
SELECT CONCAT("|", name, age, score) FROM STUDENT

(결과)
김노실|20|A+
김두식|30|A0
 ・・・

2) 코드카타 SQL : 문자열 사이에 무언가를 삽입/대체하려면 → INSERT(문자열, 시작인덱스(1부터),대체할문자수,삽입문자열)

풀었던 프로그래머스 문제 1)과 동일

insert 는 문자열 사이에 다른 문자열을 삽입할 수 있고 이 때 기존 문자열 몇 글자를 제거할 수도 있다.

(예시)
SELECT insert(name, 2, 0, /) FROM STUDENT

(결과)
김/노실
김/두식
 ・・・
select users.USER_ID, users.NICKNAME, concat_WS(" ", users.CITY, users.STREET_ADDRESS1, users.STREET_ADDRESS2) as "전체주소", insert(insert(users.TLNO, 8, 0, "-"), 4,0, "-") as "전화번호"
from 
(
    SELECT WRITER_ID, count(BOARD_ID)
    FROM USED_GOODS_BOARD
    group by 1
    having count(BOARD_ID) >= 3
) as select_id 
	inner join USED_GOODS_USER as users 
		on select_id.WRITER_ID = users.USER_ID
order by 1 desc

왼쪽의 주소/전화번호를 오른쪽과 같은 형식으로 바꿈

 

반응형

블로그의 정보

노력하는 실버티어

노실언니

활동하기