DB

[MySQL] 문자열 관련 함수

연듀 2023. 3. 4. 11:29

 

MySQL 문자열 관련 함수를 정리해보았다.

찾으면 찾을 수록 정말 다양한 함수들을 제공해주는것 같다.

 

 

LENGTH(str)

 

문자열의 길이 찾기

 

SELECT LENGTH('HELLO') -- 5

 

CONCAT(str, str)

 

여러 문자열 합치기

 

SELECT CONCAT('안녕','하','세요'); --'안녕하세요'

 


INSTR(str, substr)

 

문자열에서 찾는 문자열이 몇번째 위치에 있는지 알아내기

찾는 문자열이 없을 경우 0 리턴, 1개 이상 있는 경우 첫번째 문자열의 시작 자리수 리턴 

 

SELECT INSTR('ABCDE', 'BC') -- 2

 

 

REPLACE(str, from_str, to_str)

 

문자열에서 특정 문자열을 찾아 원하는 문자열로 모두 치환한다. 

 

SELECT REPLACE('www.naver.com', 'w', 'a') --'aaa.naver.com'

 

 

SUBSTRING(str, start_idx, len)

 

문자열을 원하는 위치에서 원하는 길이만큼 자른다.

 

SELECT SUBSTRING('가나다라마바', 3, 2) --'다라'
SELECT SUBSTRING('가나다라마바', 3) --'다라마바'
SELECT SUBSTRING('가나다라마바', -3) -- '라마바'
SELECT SUBSTRING('가나다라마바', -3, 2) --'라마'

 

 

SUBSTRING_INDEX(str, sep, sep_idx)

 

문자열을 구분자로 자른 후 인덱스까지의 문자열을 가져온다

 

SELECT SUBSTRING_INDEX('사과, 바나나, 딸기, 포도', ',', 3) --사과, 바나나, 딸기
SELECT SUBSTRING_INDEX('사과, 바나나, 딸기, 포도', ',', -3) --바나나, 딸기, 포도

 

+ split 기능

SELECT SUBSTRING_INDEX(SUBSTRING_INDEX('사과, 바나나, 딸기, 포도', ',' 1), ',', -1) --사과
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX('사과, 바나나, 딸기, 포도', ',' 2), ',', -1) --바나나

 

 

RIGHT(str, len) / LEFT(str, len) 

 

문자열을 오른쪽(왼쪽)부터 원하는 길이만큼 자른다

 

SELECT RIGHT('가나다라마바사', 3) --'마바사'
SELECT LEFT('가나다라마바사', 3) --'가나다'

 

 

TRIM((BOTH, LEADING, TRAILING) substr FROM str)

 

문자열의 공백을 잘라내거나 특정 문자열의 앞뒤로 존재하는 문자를 찾아 자른다

 

SELECT TRIM('   hello   ') --- 'hello'
SELECT TRIM(LEADING 'x' FROM 'xxxhixxx') ---'hixxx'
SELECT TRIM(BOTH 'x' FROM 'xxxhixxx') ---'hi'
SELECT TRIM(TRAILING 'x' FROM 'xxxhixxx') --'xxxhi'

 

 

LPAD(str, digit, substr) / RPAD(str, digit, substr)

 

왼쪽(오른쪽)에 특정 문자를 원하는 자리수만큼 넣는다

 

SELECT LPAD('ABC', 10, '0') --- 0000000ABC
SELECT RPAD('ABC', 10, '0') --- ABC0000000

 

 

LOWER(str) / UPPER(str)

 

문자열을 소문자(대문자)로 치환

 

SELECT LOWER('HELLO') --'hello'
SELECT UPPER('hello') --'HELLO'