본문 바로가기
Programming/SQL

[MySQL] 문자열 함수 정리

by 코딩하는 금융인 2021. 9. 12.

안녕하세요.

오늘은 MySQL 쿼리 작성 시 문자열을 다룰 때 유용한 함수에 대해 서 알아보는 시간을 가져보겠습니다.

 문자열 위치 함수

함수 설명
FIELD(x,···) 여러 개의 문자열 중 찾는 문자열이 있으면 몇 번째인지 위치, 없는 경우 0 반환
FIND_IN_SET(x,'···') 문자열 리스트(콤마로 구분) 중 찾는 문자열의 위치 찾아 반환, 없는 경우 0 반환
INSTR(기존,부분) 기준 문자열에서 부분 문자열 찾아 시작 위치 반환, 없는 경우 0 반환
LOCATE(부분,기존) INSTR 기능 동일, 매개변수 순서만 반대
SUBSTRING(x,시작,길이) 문자열을 시작 위치부터 길이만큼 잘라 반환 (≒) SUBSTR(),MID()
SUBSTRING_INDEX(x,구분자,위치) 문자열을 구분자로 나눈 다음 위치 이후, 이전의 문자열 버림

 

 문자열 변환

함수 설명
CONCAT(X1,X2,...) 문자열 이어서 반환
CONCAT_WS(구분자,X1,X2,...) 문자열 구분자와 함께 이어서 반환
INSERT(기준 문자열,위치,길이,바꿀 문자열) 기준 문자열에서 위치부터 길이만큼 삭제 후 바꿀 문자열 삽입
UCASE(X),UPPER(X) 소문자 -> 대문자 변환
LCASE(X),LOWER(X) 대문자 -> 소문자 변환
LPAD/RPAD(문자열,길이,채울 문자열) 왼쪽/오른쪽에서부터 해당 길이만큼 늘리고 빈 공간 채울 문자열 변환
LTRIM/RTRIM(X) 문자열 왼쪽/오른쪽 공백 제거 (중간 중간 공백 제거 X)
REPLACE(문자열, 대상, 바꿀 문자열) 문자열에서 대상을 바꿀 문자열로 변환

 

▣ 적용 사례

- Sample data (:: example)

1. 특정 값 우선 정렬 (Order By Field)

더보기

SELECT * FROM 테이블명 ORDER BY FIELD(컬럼명, 우선 정렬할 값,두번째 정렬할 값,세번째...);

SELECT * FROM 테이블명 ORDER BY FIELD(컬럼명, 우선 정렬할 값,두번째 정렬할 값,세번째...);

select * from example
order by field(score, 75) desc, score desc

점수(score)가 75점인 학생을 맨처음(desc) 정렬시키고 나머지는 내림차순(score desc) 정렬

 

2. 특정 위치 문자열 가져오기 (SUBSTRING)

더보기

SELECT * FROM 테이블명 WHERE SUBSTRING(컬럼명,시작위치,길이) = '조건'

SELECT * FROM 테이블명 WHERE SUBSTRING(컬럼명,시작위치,길이) = '조건'

select * from example
where substring(name,1,1) = 's';

이름(name) 첫 글자가 s로 시작하는 학생 조회

 

반응형

댓글