MySQL STRCMP() 함수로 두 문자열 비교하기
MySQL에서는 STRCMP() 함수를 사용하여 두 문자열을 손쉽게 비교할 수 있습니다. 이 함수는 두 문자열을 사전순으로 비교한 결과를 정수 값으로 반환하며, 조건에 따라 다음과 같은 값을 돌려줍니다.
두 문자열이 완전히 같으면 0을 반환합니다.
첫 번째 문자열이 두 번째 문자열보다 작으면(사전순으로 앞서면) -1을 반환합니다.
첫 번째 문자열이 두 번째 문자열보다 크면(사전순으로 뒤에 있으면) 1을 반환합니다.
아래에서 각각의 경우에 대한 실제 예시를 살펴보겠습니다.
사례 1: 두 문자열이 같은 경우
두 문자열이 동일할 때의 쿼리는 다음과 같습니다.
mysql> SELECT STRCMP("demo", "demo");
위 쿼리의 실행 결과입니다.
+------------------------+
| STRCMP("demo", "demo") |
+------------------------+
| 0 |
+------------------------+
1 row in set (0.00 sec)
두 문자열이 서로 같기 때문에 결과값으로 0이 반환됩니다.
사례 2: 첫 번째 문자열이 더 작은 경우
첫 번째 문자열이 두 번째 문자열보다 작을 때의 쿼리입니다.
mysql> SELECT STRCMP("demo", "demo1234");
위 쿼리의 실행 결과입니다.
+----------------------------+
| STRCMP("demo", "demo1234") |
+----------------------------+
| -1 |
+----------------------------+
1 row in set (0.00 sec)
"demo"가 "demo1234"보다 짧고 사전순으로 앞서므로 -1이 반환됩니다.
사례 3: 첫 번째 문자열이 더 큰 경우
첫 번째 문자열이 두 번째 문자열보다 클 때의 쿼리입니다.
mysql> SELECT STRCMP("demo1", "demo");
위 쿼리의 실행 결과입니다.
+-------------------------+
| STRCMP("demo1", "demo") |
+-------------------------+
| 1 |
+-------------------------+
1 row in set (0.00 sec)
"demo1"이 "demo"보다 사전순으로 뒤에 있으므로 1이 반환됩니다.
정리
STRCMP() 함수는 대소문자 구분 설정이나 데이터 정렬(collation) 규칙에 따라 비교 결과가 달라질 수 있다는 점도 참고하시기 바랍니다. 두 문자열의 동일 여부를 빠르게 판단하거나 정렬 기준 비교가 필요할 때 유용하게 활용할 수 있는 함수입니다.