최종 수정: 에
OVERLAY
설명
OVERLAY 함수는 문자열에서 지정된 위치부터 지정된 길이의 부분 문자열을 교체하는 데 사용됩니다. 지정된 위치부터 지정된 길이만큼의 문자를 새 문자열로 교체합니다. 이 함수는 멀티바이트 문자를 안전하게 처리합니다.
이 함수는 MySQL의 INSERT 함수와 동일하게 동작합니다.
별칭
- INSERT
구문
OVERLAY(<str>, <pos>, <len>, <newstr>)
매개변수
| 매개변수 | 설명 |
|---|---|
<str> | 수정할 원본 문자열입니다. 타입: VARCHAR |
<pos> | 교체를 시작할 위치입니다(1부터 시작). 타입: INT |
<len> | 교체할 문자의 길이입니다. 타입: INT |
<newstr> | 교체에 사용할 새 문자열입니다. 타입: VARCHAR |
반환 값
교체 후의 새 문자열을 VARCHAR 타입으로 반환합니다.
특수한 경우:
- 매개변수 중 하나라도 NULL이면 NULL을 반환합니다.
<pos>가 1보다 작거나 문자열 길이를 초과하면 교체하지 않고 원본 문자열을 반환합니다.<len>이 0보다 작거나 남은 길이를 초과하면<pos>부터 문자열 끝까지 교체합니다.
예제
- 기본 사용법: 중간 부분 교체
SELECT overlay('Quadratic', 3, 4, 'What');
+------------------------------------+
| overlay('Quadratic', 3, 4, 'What') |
+------------------------------------+
| QuWhattic |
+------------------------------------+
- 음수 길이: 끝까지 교체
SELECT overlay('Quadratic', 2, -1, 'Hi');
+-----------------------------------+
| overlay('Quadratic', 2, -1, 'Hi') |
+-----------------------------------+
| QHi |
+-----------------------------------+
- 위치가 범위를 벗어난 경우: 교체하지 않음
SELECT overlay('Hello', 10, 2, 'X');
+-------------------------------+
| overlay('Hello', 10, 2, 'X') |
+-------------------------------+
| Hello |
+-------------------------------+
- NULL 값 처리
SELECT overlay('Hello', NULL, 2, 'X');
+--------------------------------+
| overlay('Hello', NULL, 2, 'X') |
+--------------------------------+
| NULL |
+--------------------------------+
SELECT INSERT('🎉🎊🎈', 2, 1, '🎁');
+--------------------------------------+
| INSERT('🎉🎊🎈', 2, 1, '🎁') |
+--------------------------------------+
| 🎉🎁🎈 |
+--------------------------------------+