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

MySQL에서 원본 문자열의 길이가 LPAD() 또는 RPAD() 함수에 지정된 길이보다 클 경우 어떻게 될까?

원본 문자열이 지정된 길이보다 길 때의 동작

LPAD()와 RPAD() 함수는 각각 문자열의 왼쪽 또는 오른쪽을 지정한 문자로 채워(pad) 원하는 길이의 문자열을 만들어 주는 MySQL 문자열 함수입니다. 그런데 만약 원본 문자열의 길이가 인수로 지정된 길이보다 이미 크다면, 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'만 남기고 나머지 문자 'D'를 잘라낸 것을 확인할 수 있습니다.

정리하면 다음과 같습니다.

  • 원본 문자열 길이 < 지정된 길이 → 지정한 문자로 패딩하여 길이를 맞춤
  • 원본 문자열 길이 = 지정된 길이 → 원본 문자열 그대로 반환
  • 원본 문자열 길이 > 지정된 길이 → 패딩 없이 지정된 길이만큼 잘라내어 반환