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'
'DB' 카테고리의 다른 글
[MySQL] CMD이용해 CRUD 하기 (0) | 2023.05.04 |
---|---|
[MYSQL] 같지 않음을 나타내는 부정 연산자(!=, NOT, <>) (0) | 2023.03.27 |
[MySQL] 자주 나오는 문법 정리 (0) | 2023.02.25 |
[MySQL] 프로그래머스 - 상품을 구매한 회원 비율 구하기(JOIN, DISTINCT) (0) | 2023.02.23 |
[MySQL] 프로그래머스 - 년, 월, 성별 별 상품 구매 회원 수 구하기 (0) | 2023.02.23 |