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

MySQL에서 두 문자열의 유사성을 확인하는 방법 – STRCMP() 함수 활용 가이드

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) 규칙에 따라 비교 결과가 달라질 수 있다는 점도 참고하시기 바랍니다. 두 문자열의 동일 여부를 빠르게 판단하거나 정렬 기준 비교가 필요할 때 유용하게 활용할 수 있는 함수입니다.