안녕하세요.
오늘은 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로 시작하는 학생 조회
반응형
'Programming > SQL' 카테고리의 다른 글
[MySQL] with CTE (공통 테이블 표현식) (0) | 2021.11.18 |
---|---|
[MySQL] 날짜 비교 및 차이 구하기 (1) | 2021.09.22 |
MySQL Workbench 설치 (Windows) (2) | 2021.08.29 |
[MySQL] 문자열 자르기 (SUBSTR, SUBSTRING) (0) | 2021.08.22 |
[MySQL] EXISTS와 IN 사용법 비교하기 (예제) (0) | 2021.08.05 |
댓글