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

MySQL SUBSTRING_INDEX() 함수에서 'count' 인수에 음수 값을 지정하면 어떻게 동작할까?

MySQL의 SUBSTRING_INDEX() 함수는 'count' 인수로 음수 값을 받을 수 있습니다. 이 경우 함수는 구분자를 왼쪽부터 세지 않고, 마지막 구분자를 기준으로 오른쪽에 있는 부분 문자열을 반환합니다.

즉, count 값이 양수일 때는 앞에서부터 해당 개수만큼의 구분자 앞까지의 문자열을 반환하지만, 음수일 때는 뒤에서부터 구분자를 세어 그 오른쪽 전체를 반환하게 됩니다.

예제

다음 예제는 'www.google.com' 문자열에서 '.'(점)을 구분자로 사용하고, count 값으로 각각 -2와 -1을 지정한 결과입니다.

mysql> Select SUBSTRING_INDEX('www.google.com','.',-2);
+------------------------------------------+
| SUBSTRING_INDEX('www.google.com','.',-2) |
+------------------------------------------+
| google.com                               |
+------------------------------------------+
1 row in set (0.00 sec)

mysql> Select SUBSTRING_INDEX('www.google.com','.',-1);
+------------------------------------------+
| SUBSTRING_INDEX('www.google.com','.',-1) |
+------------------------------------------+
| com                                      |
+------------------------------------------+
1 row in set (0.00 sec)

결과 해석

- 첫 번째 쿼리에서 count 값이 -2이므로, 뒤에서 두 번째 구분자('.')를 기준으로 그 오른쪽 전체인 'google.com'이 반환됩니다.
- 두 번째 쿼리에서 count 값이 -1이므로, 마지막 구분자 오른쪽에 있는 'com'만 반환됩니다.

이처럼 count 인수에 음수 값을 사용하면 도메인 이름에서 최상위 도메인(TLD)이나 특정 접미사를 추출하는 등, 문자열의 오른쪽 끝부분을 다룰 때 매우 유용하게 활용할 수 있습니다.