본문 바로가기

MySQL

MySQL 휴대폰 번호에 하이픈(-) 삽입/CASE 문법/조건에 따른 결괏값 반환

MySQL에서 휴대폰 번호에 하이픈을 넣는 방법이다.

 

1. 번호 하나에 하이픈을 넣는 경우

SELECT hp
     , CASE LENGTH(hp)
       WHEN 11 THEN CONCAT(LEFT(hp, 3), '-', MID(hp, 4, 4), '-', RIGHT(hp, 4))
       WHEN 10 THEN CONCAT(LEFT(hp, 3), '-', MID(hp, 4, 3), '-', RIGHT(hp, 4))
        END x
  FROM (SELECT '01012345678' hp
        ) a;

 

2. 테이블 내 모든 번호에 하이픈을 넣는 경우

SELECT PHONE
     , CASE LENGTH(PHONE)
       WHEN 11 THEN CONCAT(LEFT(PHONE, 3), '-', MID(PHONE, 4, 4), '-', RIGHT(PHONE, 4))
       WHEN 10 THEN CONCAT(LEFT(PHONE, 3), '-', MID(PHONE, 4, 3), '-', RIGHT(PHONE, 4))
        END PHONE_NUMBER
  FROM (SELECT PHONE
		FROM '테이블명'
        ) a ;

 

 

CASE

 

CASE문은 쿼리 구문에서 스위치(Switch) 문이 필요할 때 사용하는 함수다.

MySQL 4.0부터 사용 가능하다.

CASE문은 조건을 통과하고 해당 초건이 충족되면 값을 반환한다.
조건이 참(TRUE)이면 결과를 반환하고, 참이 아닐 경우 ELSE 절의 값을 반환한다.
조건이 거짓인데 ELSE 부분이 없을 경우 NULL을 반환한다.

 

 

CASE 문법

CASE
	WHEN 조건1 THEN 결과값1
	WHEN 조건2 THEN 결과값2
	WHEN 조건N THEN 결과값N
	ELSE 결과값
END

 

  • WHEN - THEN은 항상 함께 사용해야 한다.
  • WHEN - THEN은 여러 번 사용 가능하다.
  • WHEN 조건이 참일 경우 THEN 결괏값을 반환한다.
  • WHEN 조건이 거짓일 경우 ELSE 결괏값을 반환한다.
  • WHEN 조건이 거짓인데 ELSE 결괏값이 없을 경우 NULL을 반환한다.

 

 

 

 

 

참고한 글

http://www.gurubee.net/article/66741

https://info-lab.tistory.com/305

'MySQL' 카테고리의 다른 글

DB 모델링 사이트/ERD 개념/ERD 설계 방법  (0) 2023.10.25
MySQL/mysql workbench가 실행되지 않을 때  (0) 2023.10.10
[mariaDB] 마리아DB 설치  (1) 2023.10.10