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

MySQL STRCMP() 함수에 숫자 값을 인수로 사용하는 방법

MySQL의 STRCMP() 함수는 주로 문자열을 비교하는 데 사용되지만, 숫자 값도 인수로 전달하여 비교할 수 있습니다. 이때 숫자 값은 따옴표 없이 그대로 인수로 넘겨주면 됩니다.

STRCMP() 함수의 반환 값

STRCMP() 함수는 두 인수를 비교한 결과를 다음과 같이 반환합니다.

  • 0: 두 값이 같을 때
  • 1: 첫 번째 값이 두 번째 값보다 클 때
  • -1: 첫 번째 값이 두 번째 값보다 작을 때
  • NULL: 인수 중 하나라도 NULL일 때

숫자 값을 사용한 예제

아래 예제는 숫자 값을 인수로 사용하여 STRCMP() 함수를 호출하는 다양한 경우를 보여줍니다.

mysql> Select STRCMP(10,10) As 'Equal Numbers', STRCMP(11,10) AS '2nd Smaller', STRCMP(10,11) AS '1st Smaller', STRCMP(10,NULL) As '2nd NULL', STRCMP(NULL,10) AS '1st NULL', STRCMP(NULL,NULL) AS 'Both NULL';
+---------------+-------------+-------------+----------+----------+-----------+
| Equal Numbers | 2nd Smaller | 1st Smaller | 2nd NULL | 1st NULL | Both NULL |
+---------------+-------------+-------------+----------+----------+-----------+
| 0             | 1           | -1          | NULL     | NULL     | NULL      |
+---------------+-------------+-------------+----------+----------+-----------+
1 row in set (0.00 sec)

결과 해석

위 결과를 살펴보면 다음과 같은 내용을 확인할 수 있습니다.

숫자 비교

  • STRCMP(10,10)0: 두 숫자가 같으므로 0을 반환합니다.
  • STRCMP(11,10)1: 첫 번째 값(11)이 더 크므로 1을 반환합니다.
  • STRCMP(10,11)-1: 첫 번째 값(10)이 더 작으므로 -1을 반환합니다.

NULL 값 처리

  • STRCMP(10,NULL), STRCMP(NULL,10), STRCMP(NULL,NULL) → 모두 NULL 반환: 인수 중 하나라도 NULL이면 비교 자체가 불가능하므로 항상 NULL을 반환합니다.

이처럼 STRCMP() 함수는 문자열뿐만 아니라 숫자 값 비교에도 활용할 수 있으며, NULL 값이 포함된 경우에는 항상 NULL을 반환한다는 점을 기억해두면 유용합니다.