본문으로 건너뛰기
최종 수정: 에

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>부터 문자열 끝까지 교체합니다.

예제​

  1. 기본 사용법: 중간 부분 교체
SELECT overlay('Quadratic', 3, 4, 'What');
+------------------------------------+
| overlay('Quadratic', 3, 4, 'What') |
+------------------------------------+
| QuWhattic |
+------------------------------------+
  1. 음수 길이: 끝까지 교체
SELECT overlay('Quadratic', 2, -1, 'Hi');
+-----------------------------------+
| overlay('Quadratic', 2, -1, 'Hi') |
+-----------------------------------+
| QHi |
+-----------------------------------+
  1. 위치가 범위를 벗어난 경우: 교체하지 않음
SELECT overlay('Hello', 10, 2, 'X');
+-------------------------------+
| overlay('Hello', 10, 2, 'X') |
+-------------------------------+
| Hello |
+-------------------------------+
  1. NULL 값 처리
SELECT overlay('Hello', NULL, 2, 'X');
+--------------------------------+
| overlay('Hello', NULL, 2, 'X') |
+--------------------------------+
| NULL |
+--------------------------------+
SELECT INSERT('🎉🎊🎈', 2, 1, '🎁');
+--------------------------------------+
| INSERT('🎉🎊🎈', 2, 1, '🎁') |
+--------------------------------------+
| 🎉🎁🎈 |
+--------------------------------------+