Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL LPAD(), RPAD() 함수에서 원본 문자열이 지정된 길이보다 길 때의 동작 방식

MySQL에서 LPAD() 또는 RPAD() 함수를 사용할 때, 원본 문자열의 길이가 두 번째 인자로 지정한 길이보다 크면 패딩 문자는 전혀 추가되지 않습니다. 대신 MySQL은 지정된 길이만큼 원본 문자열을 잘라내어(truncate) 반환합니다.

동작 예시

mysql> Select LPAD('ABCD',3,'*');
+--------------------+
| LPAD('ABCD',3,'*') |
+--------------------+
| ABC                |
+--------------------+
1 row in set (0.00 sec)

mysql> Select RPAD('ABCD',3,'*');
+--------------------+
| RPAD('ABCD',3,'*') |
+--------------------+
| ABC                |
+--------------------+
1 row in set (0.00 sec)

결과 분석

위 예시를 보면, 원본 문자열 'ABCD'는 4글자인데 지정된 길이는 3입니다. 이 경우 두 함수 모두 패딩 문자 '*'를 붙이지 않고, 인자로 지정된 길이인 3에 맞춰 원본 문자열을 왼쪽부터 잘라낸 'ABC'를 그대로 반환하는 것을 확인할 수 있습니다.

즉, LPAD()와 RPAD()는 다음과 같이 동작합니다.

  • 원본 문자열 길이 < 지정된 길이: 부족한 만큼 패딩 문자를 채워 반환
  • 원본 문자열 길이 = 지정된 길이: 원본 문자열을 그대로 반환
  • 원본 문자열 길이 > 지정된 길이: 패딩 없이 지정된 길이만큼 잘라내어 반환

이러한 특성을 이해하면 데이터 정규화나 고정 길이 필드 처리 시 의도치 않은 데이터 손실을 방지할 수 있습니다.