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

제거할 문자 수가 원본 문자열의 문자 수를 초과하면 MySQL INSERT() 함수는 무엇을 반환할까?

제거할 문자 수가 원본 문자열 길이를 초과하는 경우 MySQL INSERT() 함수의 동작

MySQL의 INSERT() 함수를 사용할 때, 제거하려는 문자 수가 원본 문자열에 실제로 존재하는 문자 수보다 많은 경우가 발생할 수 있습니다. 이때 MySQL은 오류를 반환하지 않습니다. 대신 함수는 지정된 시작 위치부터 원본 문자열의 끝까지 있는 모든 문자를 계속 제거한 뒤, 해당 자리에 새 문자열을 삽입합니다.

즉, 제거 범위가 문자열 길이를 넘어서더라도 처리가 중단되지 않으며, 시작 위치 이후의 전체 문자열이 새 문자열로 대체됩니다.

예제

mysql> Select INSERT('myteststring',3,15,'original');

+----------------------------------------+
| INSERT('myteststring',3,15,'original') |
+----------------------------------------+
| myoriginal                             |
+----------------------------------------+

1 row in set (0.00 sec)

결과 분석

위 예제에서 원본 문자열 'myteststring'은 총 12자입니다. 그런데 세 번째 인수로 15를 지정하여 3번째 위치부터 15개의 문자를 제거하도록 요청했습니다. 실제로 3번째 위치 이후에 남아 있는 문자는 'teststring'으로 10개뿐이지만, MySQL은 오류 없이 문자열 끝까지의 모든 문자를 제거하고 'original'을 삽입하여 최종적으로 'myoriginal'을 반환합니다.

이처럼 INSERT() 함수는 제거할 문자 수가 초과되더라도 안전하게 동작하며, 시작 위치 이후의 내용을 모두 교체하는 방식으로 결과를 만들어냅니다.